for循环批处理文件

时间:2011-07-13 14:20:28

标签: windows batch-file dos

  

可能重复:
  Random variable not changing in “for” loop in windows batch file

我有一个文本文件,其中包含我要重命名的文件列表。这是我的代码:

for /f %%i in (tmp.txt) do set script_name=%%i & ren %script_name% %script_name:~0,9%%num%%script_name:~15,9%.sql

但在第二部分中,仅在循环的第一次迭代中需要%script_name%。所以

ren %script_name% %script_name:~0,9%%num%%script_name:~15,9%.sql

总是这样做。

请帮助解决这个问题。

1 个答案:

答案 0 :(得分:3)

查看set /?,然后探讨延迟的环境扩展。你会先 SETLOCAL ENABLEDELAYEDEXPANSION (同样查看setlocal /?)然后将ren中的变量用!而不是%'包装。我也会用&&连接命令,所以第一个命令在第二个命令开始之前完成。