我創建刪除在%TEMP%
目錄中的所有文件夾Rar$DIa0.???
批處理文件。如何刪除名稱中某個特定模式的文件?
這是可能的,怎麼辦呢?
的???是三個隨機數字。這就是我遇到的問題 - 刪除名稱中包含Rar$DIa0.
的所有文件夾。
我創建刪除在%TEMP%
目錄中的所有文件夾Rar$DIa0.???
批處理文件。如何刪除名稱中某個特定模式的文件?
這是可能的,怎麼辦呢?
的???是三個隨機數字。這就是我遇到的問題 - 刪除名稱中包含Rar$DIa0.
的所有文件夾。
在批處理文件中使用此任務的命令行是:
@for /D %%I in ("%TEMP%\Rar$DIa0.*") do @rd /Q /S "%%I"
命令FOR與選項的文件夾/D
搜索環境變量TEMP
與文件夾名稱的子文件夾開始,沒有Rar$DIa0.
定義隱藏或系統屬性集。
循環變量I
爲每個找到的與該文件夾模式匹配的子文件夾保留找到的文件夾的名稱,其中包含完整路徑而不帶雙引號,儘管臨時文件夾的路徑通常包含1個或更多空格。
出於這個原因只是命令RD與參數/Q
安靜的執行和/S
的也刪除所有子文件夾中指定的文件夾必須引用雙引號括起來循環變量I
的當前值被調用。
爲了解所使用的命令及其工作方式,請打開命令提示符窗口,在其中執行以下命令,並仔細閱讀爲每個命令顯示的所有幫助頁面。
for /?
rd /?
順便說一句:WinRAR的刪除臨時文件夾通常會自動,除了一個文件從檔案內打開用於觀看/在另一個應用程序和修改它WinRAR在另一個應用程序退出並打開文件之前關閉。在這種情況下,WinRAR無法刪除臨時解壓縮文件的臨時文件夾,因爲該文件仍在另一個應用程序中打開。當然,也可以使用命令RD如果此文件夾仍然是另一個應用程序的當前目錄,或者此文件夾中的文件仍由另一個具有讀/寫訪問鎖定的應用程序打開,則無法刪除臨時文件夾。
for /d
是專爲眼前這個類型的使用。像這樣的東西應該工作(除去%
之一,如果你在命令行測試):
for /d %%i in ("%TEMP%\Rar$DIa0.???") do rd "%TEMP%\%%i"
的/ d使得它的目錄名稱,而不是文件名的工作。
如果你想讓它更容易對自己,改變到%TEMP%文件夾第一:
pushdir
cd /d %TEMP%
for /d %%i in ("Rar$DIa0.???") do rd "%%i"
的???
使得它僅在具有一個.
後三個字母的文件夾行事。如果您的文件夾不只有三個字母的擴展名,請將.???
更改爲.*
。如果你有一個錯字,並且在該文件夾名沒有實際.
,只是將其刪除,並使用Rar$DIa0???
或Rar$DIa0*
你可能想通過改變rd
到echo
先測試它,以確保你得到你的文件夾要在實際刪除它們之前。
有關的詳細信息for
(雙關語意)從一個命令提示for /?
鍵入。
感謝您的回答,它確實有效!我實現了這個到我的批處理文件。我有一個新問題:從C:\ $ RECYCLE.BIN中刪除這些文件夾。有沒有辦法做到這一點,而不需要手動刪除它們?我不想刪除所有文件,我想保留除這些文件夾以外的所有內容。我已經嘗試過** del/s/q「C:\ $ RECYCLE.BIN \ Rar $ Dla0。*」**,但這沒有奏效。 – Quizzed
命令__DEL__用於刪除文件。命令__RD__(刪除目錄)用於刪除文件夾。通過在命令提示符窗口中運行'del /?'和'rd /?',在第一行幫助輸出中清楚地說明了這一點。在同一批處理文件中複製張貼的命令行,並用'C:\ $ RECYCLE.BIN'替換第二個命令行'%TEMP%',以刪除回收站文件夾中匹配模式'Rar $ Dla0。*'的所有文件夾。或者使用一個命令行:'@for/D %% I in(「%TEMP%\ Rar $ DIa0。*」「C:\ $ RECYCLE.BIN \ Rar $ DIa0。*」)do @rd/Q/S「%%我」 – Mofi