【发布时间】:2016-09-07 14:26:22
【问题描述】:
我正在尝试使用命令: "set n=0" "for /f %%i in ('dir /a:d /b') do (set /a n+= 1) & (set var %n%=%%i)" - 它总是将 %%i 设置为 var0,但我可以看到“set n+= 1”正在工作。如何使用“n”为每个回合创建不同的变量?
例如:var1,var2,var3.. 用于目录中的每个文件夹。
无论答案如何,我都需要“n”来保存命令运行的次数(这样程序就会知道文件夹的数量)(编辑:是的,我知道我的示例提供了这个,我的意思是如果有人改变了代码,'n' 仍然需要设置为运行次数)
编辑:我已经查看了页面:Arrays, linked lists and other data structures in cmd.exe (batch) script 并发现它很有用,但我不太了解正确的用法。 有人可以通过修复我的代码以使用 DelayedExpansion 或更好地解释如何实现它来帮助我吗?
编辑:伙计们!这我不是重复的。我尝试使用 DelayedExpansion 但无法正常工作。我的问题是由我使用的文本编辑器(NotePad++)引起的,这就是为什么我认为我使用 DelayedExpansion 错误并要求澄清的原因。在下面的答案证明我的代码是正确的之后,我最终自己修复了它。
【问题讨论】:
-
如果每次有人需要使用delayed expansion 时我都能得到五分钱,我就可以退休了。
-
n确实保存了正确的运行次数 - 将echo %n%放在for循环之后,您会看到...
标签: batch-file