Reputation: 1031
I'm looking for a batch file that will go into C:\Documents and Settings\ and delete all folders except a few that I want to keep.
Upvotes: 3
Views: 4538
Reputation: 2523
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
)
Upvotes: 1
Reputation: 2712
A solution using robocopy:
cd /d "C:\Documents and Settings"
md tmp
robocopy . tmp /E /MOVE /XD folderToKeep1 folderToKeep2 ...
rd /s /q tmp
Upvotes: 3
Reputation: 15919
Here's a hack-around =D
If you have a list of folder paths in say folders.txt listed as so:
etc. What you can do is temporarily change them to hidden folders, then RMDIR on all non-hidden folders.
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
)
Upvotes: 4