windows - 批处理文件中的for循环

标签 windows batch-file dos

<分区>

Possible Duplicate:
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

总是这样做。

请帮忙解决这个问题。

最佳答案

查看 set/?,然后探索延迟的环境扩展。你会先 设置本地启用延迟扩展 (也请查看 setlocal/?),然后使用 ! 而不是 % 将变量包装在 ren 中。我还会使用 && 连接命令,因此第一个命令在第二个命令开始之前完成。

关于windows - 批处理文件中的for循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6680409/

相关文章:

windows - RegDeleteKey 和 RegDeleteKeyEx

javascript - Firefox Mac 对齐问题

windows - 如何计算 for/f 循环生成的 token 数量?

c - 调试崩溃的用 OpenWatcom 编译的 32 位 DOS 可执行文件

c - 在 C 中提取 dos 命令输出

c++ - 从 Forger 的 Win32 API 编程教程学习 Win32 API 编程

java - 使用 Runtime.exec 运行批处理文件而不使用 cmd.exe

batch-file - 如何根据图像/文件路径终止进程?

windows - 在txt文件中循环并使用批处理文件列出内容

java - 如何在 3 种不同的浏览器中在同一台电脑上并行运行 selenium html 套件?