可能重复:
随机variables在windowsbatch file中的“for”循环中不变
我有我想要重命名文件列表的文本文件。 这是我的代码:
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
总是这样做。
请帮助解决这个问题。
看一下set /?
然后探索延迟的环境扩张。 你将首先SETLOCAL ENABLEDELAYEDEXPANSION
(看看setlocal /?
),然后将变量包含在!的ren
,而不是%。 我也将使用&&连接命令,所以第一个在第二个开始之前完成。