使用单个批处理文件删除多个目录

时间:2017-01-21 05:38:21

标签: batch-file cmd

我想创建一个可以一次删除多个目录的批处理脚本。我搜索过网络,但似乎只找到删除多个子目录或文件的方法。到目前为止,我可以创建一个脚本来使用这种结构删除一个特定的文件夹:

rmdir "C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Cookies" /S /Q

然后我尝试了多种方法来声明不同组合和序列中的其他文件夹,但似乎都没有。首先,我尝试将所有其他目录放在一行,然后是/ S / Q,然后将rmdir和/ S / Q放在每个新路径的开头和结尾,然后按Enter键将每个路径放在一个新行上。我使用了错误的命令吗?任何帮助表示赞赏。

3 个答案:

答案 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”的目录