如何批处理 执行 一个exe文件连续对 不同文件夹下的文件进行操作?

如图所示
文件夹中aaacnv.exe为执行文件 他能执行各个文件夹中的*.aaa文件
还有很多文件夹每个文件夹都只有一个*.aaa的文件

aaacnv.exe 用法为 C:\aaacnv *.aaa [解包路径]

如何使用批处理 达到 使所有文件夹下所有.aaa文件均使用aaacnv.exe解开 而且解开的文件均存放于原来的文件夹
例如文件夹下t4000 只有一个文件t4000.aaa 其他所有文件夹也都是均只有一个文件 且与文件夹名字对应
绝对不能把各个aaa文件放在同一文件夹 否则一旦解开aaa文件后 文件会变的很混乱 无法分清
目前两位答案依然不能达到要求 无法执行

@echo off
for /f "delims=" %%a in ('dir /b /a-d /s *.aaa') do (
cd /d "%%~dpa"
"%~dp0aaacnv.exe" "%%a"
)
pause
exit

将这个批处理放在需要处理的目录下面,该目录必须包含aaacnv.exe

如,将这个批处理文件放在上面最后一张图的目录下面。。执行后,会将这个目录下面的所有目录下面的 aaa文件都解压出来

但是,aaacnv.exe 必须是,默认解压出来的文件是当前的路径,不然的话,是没办法都解压到原来的目录夹下面的。。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-10-10
使用批处理文件吧,我小时候写过,不太记得了,大概是这样吧,例如你的aaacnv文件和*.aaa文件都在d:\Test文件夹里

打开记事本,写入:
@echo off
d:
cd Test
for /R "D:\Test\" %%c in (*.aaa) do aaacnv %%c
echo done!

先打开cmd,输入cmd /e:on
没有错误消息的话再执行上面的批处理文件
第2个回答  2010-10-10
@echo off&color a&setlocal enabledelayedexpansion
set /p exe=请输入你的aaacnv.exe文件路径(可以拖放):
for %%a in (%*) do (
call :task %%a
)
pause

:task
for /r %1 %%b in (*) do (
if %%~xb==.aaa !exe! "%%b" "%%~dpb"
)

这个批处理的执行方式是将你的那些要解压的*.aaa文件所在的文件夹拖放到这个批处理上面,就可以了