2014-01-10 81 views
2

我想刪除在父目錄中找到的除MYFOLDER之外的所有文件夾,但無法完成此操作?刪除除....以外的所有文件夾(* .BAT)

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

有人可以檢查代碼嗎?

(我使用* .bat)的形式

+0

請檢查http://social.technet.microsoft.com/Forums/scriptcenter/en-US/fb007a7f-9207-4dc6-ba50-0723c89e6f77/delete-except-certian-files?forum=ITCG –

+1

你喜歡刪除文件或文件夾?如果你想刪除文件夾,應該用RD代替DEL。 – Rafael

回答

0

Dir所有文件夾和逐一檢查,如果它不是MyFolder文件,如果不是 - 刪除。 運行真實工作時請刪除echo

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

請注意,如果您只是使用'for/d'而不是使用'for/f'迭代'dir'輸出,那麼您會省去很多痛苦。 – Joey

+0

對不起,應該是/ F。 –

2

這會幫助你:

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

你能解釋一下'%%〜nxi'代表什麼?它對我不起作用,但'%%我'。 – Munchkin

0

或者乾脆複製MyFolder文件到一個臨時文件夾,刪除所有文件,並複製回MyFolder文件。除非MYFOLDER是巨大的並且需要時間來複制,否則這應該同樣好。

相關問題