如果在具有for循环和列表的窗口中不存在,则创建目录

时间:2014-01-27 22:56:52

标签: windows batch-file command-line

我对批处理文件相当新(我只想要基本的批处理文件,没有像PowerShell这样的脚本等)。

作为配置管理的一部分,我想创建一些目录,如果它不存在,例如伪代码

myDir[1] = 'd:\logging\Folder1'
myDir[2] = 'd:\logging\Folder2'
...
myDir[9] = 'd:\logging\Folder9'

for i=1 to 9
  if not exist myDir[i] mkdir myDir[i]

我很好,数组中的目录是硬编码的

谢谢!

2 个答案:

答案 0 :(得分:2)

我不明白为什么你甚至需要一个阵列。似乎列表可以正常工作。

for %%F in (
  "d:\logging\Folder1"
  "d:\logging\Folder2"
  ... etc.
  "d:\logging\FolderN"
) do if not exist "%%~F\" mkdir "%%~F"

我在文件夹路径周围使用引号,以防任何名称包含空格或毒药字符。

IF NOT EXIST测试中的尾随\强制它仅匹配文件夹而不是文件。

答案 1 :(得分:0)

这是另一种方法。如果任何文件夹已经存在,2>nul只会保持屏幕清晰。

1,1,9表示从1开始,以1到9的步长计数

@echo off
for /L %%a in (1,1,9) do md "d:\logging\Folder%%a" 2>nul