我正在編寫一個.bat腳本來刪除所有文件夾,但大致是五個預設文件夾。我所做的是創建一個for循環來處理每個文件夾,然後forloop通過IF語句檢查文件夾的名稱是否與字符串匹配,在這種情況下,它使用GOTO轉到RD命令下面的行,以便刪除被跳過。Windows批處理文件刪除除幾個文件夾以外的所有文件
但是,這結束了for循環,意味着每個文件夾,直到第一個異常被刪除。
有沒有更好的方法來實現我想要的,還是有我的腳本調整?
@echo off
echo Starting...
for /d %%i in ("C:\demo\*") do (
if "%%i" == "C:\demo\mark" goto skipdel
if "%%i" == "C:\demo\pjotr" goto skipdel
if "%%i" == "C:\demo\jasper" goto skipdel
rd /s /q %%i
echo Deleted
:skipdel
)
echo Done.
pause
轉到打破了上下文。 – npocmaka
,不要忘記,這在路徑中有空格的系統文件中不起作用...如果你有如下路徑:「C:/ Program Files(86x)/ ...」你必須使用:for/d% ('type「C:\ demo \ *」')do( –