【发布时间】:2015-10-22 11:52:04
【问题描述】:
我有简单的脚本:
@echo off
set back=%cd%
for /d %%i in (dir1\*) do (
cd %%i
ant clean compile deploy
cd %cd%
)
for /d %%i in (dir2\*) do (
cd %%i
ant clean compile deploy
cd %cd%
)
应该在 dir1 和 dir2 的每个子文件夹中运行 一些命令。但是:
当我运行脚本时,只执行第一个 for 循环。如何让第二个循环也运行?
-
另外,@echo off 似乎仅适用于循环的第一次迭代,以及其他所有显示:
C:*\桌面>( cd dir1\文件夹 一些命令 cd C:*\桌面\ )
【问题讨论】:
-
脚本对我来说工作正常。
some command到底是什么?echo %%i工作正常。 -
正如 Dmitry 所说,错误必须是由
*some command*引起的。请给我们代码! -
另外,不要将当前目录存储为
%back%,而是使用pushd和popd。您还应该引用您的路径,以防它们包含空格或&符号或其他批处理脚本道路危险。示例:set "back=%cd%"和cd "%%~i" -
你说得对,它可以与其他命令一起正常工作,但是当我使用“ant clean compile deploy”时,它会在第一个文件夹之后停止。
标签: windows batch-file