出于测试目的,我需要一个包含一些文件的递归目录,达到最大路径长度。
用于创建的Script仅由两个for循环组成,如下:
for /L %%a in (1 1 255) do @(
mkdir %%a
&& cd %%a
&& for /L %%b in (1 1 %random%) do @(
echo %%b >> %%a.txt
)
)
现在我想将此脚本作为另一个脚本的一部分嵌入,因为还有更多工作要做,但我无法在它周围添加任何其他命令或它拒绝工作。如果这对您有用,我在 windows vista 下使用它。
如果我写
"@ECHO OFF
也不行"在第一行,都没有 "echo done
"在最后一行。命令行上的输出是:
X:\Scripte>recursive.cmd
OFFfor /L %a in (1 1 255) do @( mkdir %a
The system cannot find the path specified.
编辑:
似乎是第 8 层的问题,问题似乎出在所使用的命令 shell 中,如果使用裸 cmd.exe,它可以工作,使用 Visual Studio 2008 命令 shell 它不起作用,如上所述。
无论如何,谢谢。
最佳答案
我不明白如何在答案下面添加一点评论,所以我就在这里做。
仅当 echo 尚未关闭时,才需要开括号前面的 @ 符号。在这种情况下,没有@ 符号会发生什么,FOR 循环中的每个命令都会被回显。
而且,是的,需要 && 的原因是文本编辑器将其全部放在一行中。但是没有人发布解决方案。只需复制并粘贴到记事本中,然后根据需要将行分开。
关于batch-file - 批处理如何正确结束 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/359120/