我想x.bat
在所有递归子目录中自动运行所有内容:
C:\test
|
+---folder1
| x.bat
|
+---folder2
| x.bat
|
+---folder3
. x.bat
.
.----foldern
x.bat
可以依次或者同时进行,无所谓。
我有这个:
@echo off
for /r /d %%x in ("*") do (
pushd "%%x"
call "x.bat"
popd
)
pause
但它只能x.bat
运行folder1
。
答案1
您的代码在我的计算机上完美运行。
我用你的 test.bat 创建了一个测试目录和两个包含 x.bat 的测试目录:
C:\tmp\865348>dir /s /b
C:\tmp\865348\f1
C:\tmp\865348\f2
C:\tmp\865348\test.bat
C:\tmp\865348\f1\x.bat
C:\tmp\865348\f2\x.bat
这些文件包含:
C:\tmp\865348>type test.bat
@echo off
for /r /d %%x in ("*") do (
pushd "%%x"
call "x.bat"
popd
)
pause
C:\tmp\865348>type f1\x.bat
echo "I'm f1"
C:\tmp\865348>type f2\x.bat
echo "I'm f2"
现在运行它:
C:\tmp\865348>test.bat
"I'm f1"
"I'm f2"
Press any key to continue . . .
对我来说没问题。我想说问题出在子目录中的 x.bat 中。确定你没有在所有的子目录中都硬编码“folder1”吗?