Falcon
Falcon

Reputation: 595

Delete all folders except.... (*.BAT)

I would like to delete all folders except MYFOLDER found in a parent directory but I cant get it done?

for %%i in ("C:\Parent") do if not "%%i"=="MYFOLDER" del /f /q "%%i

could somebody please check the code?

(I'm using *.bat)

Upvotes: 4

Views: 15689

Answers (3)

mihai_mandis
mihai_mandis

Reputation: 1658

Dir all folders and check one by one if it is not MYFOLDER, if is not - delete it. Please remove echo when running the real job.

for /d %%i in (C:\Parent\*) do (
    if /i "%%i" NEQ ".exe" echo rd /S /Q %%i
)

Upvotes: 0

RuntimeException
RuntimeException

Reputation: 1643

Or simply copy MYFOLDER to a temp folder, delete all files, and copy back MYFOLDER. Unless MYFOLDER is huge and takes time to copy, this should work just as good.

Upvotes: 0

foxidrive
foxidrive

Reputation: 41297

This should help you:

for /d %%i in ("C:\Parent\*") do if /i not "%%~nxi"=="MYFOLDER" del /s /q "%%i"

Upvotes: 4

Related Questions