我正在尝试创建一个标准化的目录结构来准备驱动器,以便整理和迁移到新位置。我要做的是在驱动器的根目录中运行一个批处理文件,该文件在所有子目录中运行,并在每个子目录中创建一个名为“Archive”的新文件夹,准备好整理文件并稍后移动或删除。
我正在尝试使用带有MD命令的FOR / F来制作文件夹,但我真的很难理解语法。令牌和变量。我正在努力适应像
这样的东西for /f "tokens=*" %a in ('dir /b /s /a-d') do @copy "%a" "c:\Single-Folder"
我从here用@md取代@copy取代了......但是我真的超出了我的深度。
任何提供的帮助非常感谢
答案 0 :(得分:1)
您正在使用的命令:
dir /b /s /a-d
列出除目录之外的所有内容( - 符号否定该属性)。所以你必须使用正确的命令:
dir /b /s /ad
(亲自试试!)。
FOR /F
一次读取dir
命令的输出,一行文本。 tokens=*
将获得整行(删除前导空格)。我想你需要这个:
for /f "tokens=*" %a in ('dir /b /s /ad') do @echo mkdir "%a\Archive"
如果您确定它是正确的,请删除echo
命令以实际执行mkdir
。
答案 1 :(得分:1)
我认为你想要做的就是这种结构:
@Echo OFF
REM By Elektro H@cker
For /D /R "%SYSTEMDRIVE%\" %%# in (*) do (MKDIR "%SYSTEMDRIVE%\Single-Folder\%%~p#")
Pause&Exit