批处理文件,用于删除目录中除指定列表之外的所有文件夹

时间:2011-09-21 16:21:49

标签: batch-file windows-xp cmd

我正在寻找一个将进入C:\ Documents and Settings \的批处理文件,并删除除了一些我想保留的文件夹之外的所有文件夹。

3 个答案:

答案 0 :(得分:4)

这是一个黑客攻击= D

如果你有一个文件夹路径列表,例如folders.txt列出如下:

  • C:\ Documents and Settings \ Mechaflash
  • C:\ Documents and Settings \ Mom
  • C:\ Documents and Settings \ Dad

等。您可以做的是暂时将它们更改为隐藏文件夹,然后将RMDIR更改为所有非隐藏文件夹。

CD "C:\Documents and Settings\"
FOR /F "tokens=*" %%A IN (folders.txt) DO (
 ATTRIB +H "%%A" /S /D
)
FOR /F "USEBACKQ tokens=*" %%F IN (`DIR /B /A:-HD "C:\Documents and Settings\"`) DO (
 RMDIR /S /Q %%A
)
FOR /F "tokens=*" %%A IN (folders.txt) DO (
 ATTRIB -H "%%A" /S /D
)

答案 1 :(得分:3)

使用robocopy的解决方案:

cd /d "C:\Documents and Settings"
md tmp
robocopy . tmp /E /MOVE /XD folderToKeep1 folderToKeep2 ...
rd /s /q tmp

答案 2 :(得分:1)

rem the last space character is deliberate
set yourKeepList="abc def "
for /f %%f in ('dir /b/ad "C:\Documents and Settings"') do (
    (echo %yourKeepList% | findstr /v /i "%%f " 1>nul) && rd /q/s %%f
)