我想创建一个可以一次删除多个目录的批处理脚本。我搜索过网络,但似乎只找到删除多个子目录或文件的方法。到目前为止,我可以创建一个脚本来使用这种结构删除一个特定的文件夹:
rmdir "C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Cookies" /S /Q
然后我尝试了多种方法来声明不同组合和序列中的其他文件夹,但似乎都没有。首先,我尝试将所有其他目录放在一行,然后是/ S / Q,然后将rmdir和/ S / Q放在每个新路径的开头和结尾,然后按Enter键将每个路径放在一个新行上。我使用了错误的命令吗?任何帮助表示赞赏。
答案 0 :(得分:4)
for %%a in ("dirname 1" "dirname2" "as many as you want") do rd /s /q "%%~a"
应该做你想要的 - 依次为每个[可选引用的]参数设置%% a。如果目录名包含空格之类的分隔符,则必须使用引号。
答案 1 :(得分:1)
您可以使用for
循环迭代目录列表,如下所示:
pax> for %d in (c:\dir1 c:\other\dir2) do echo %d
c:\dir1
c:\other\dir2
在您的特定情况下,它将类似于(在cmd文件中):
for %%d in (c:\dir1 c:\other\dir2) do rmdir "%%~d" /s /q
答案 2 :(得分:1)
您可以按名称自动查找子目录并将其删除
for /f %%d in ('dir /b "C:\exampledir\searched_dir_name*"') do rd /s /q "C:\exampledir\%%d"
此命令将删除目录C:\ exampledir \
中所有名称为“ searched_dir_name”的目录