2016-08-26 62 views

回答

0

在批處理文件中使用此任務的命令行是:

@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如果此文件夾仍然是另一個應用程序的當前目錄,或者此文件夾中的文件仍由另一個具有讀/寫訪問鎖定的應用程序打開,則無法刪除臨時文件夾。

+0

感謝您的回答,它確實有效!我實現了這個到我的批處理文件。我有一個新問題:從C:\ $ RECYCLE.BIN中刪除這些文件夾。有沒有辦法做到這一點,而不需要手動刪除它們?我不想刪除所有文件,我想保留除這些文件夾以外的所有內容。我已經嘗試過** del/s/q「C:\ $ RECYCLE.BIN \ Rar $ Dla0。*」**,但這沒有奏效。 – Quizzed

+0

命令__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

1

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*

你可能想通過改變rdecho先測試它,以確保你得到你的文件夾要在實際刪除它們之前。

有關的詳細信息for(雙關語意)從一個命令提示for /?鍵入。

+0

「for/d %% i in(Rar $ DIa0 *)do rd %% i」does not work。它不會刪除文件夾。 – Quizzed

+0

(Rar $ DIa0)此時出乎意料。 – Quizzed

+0

它確實有效。我在發佈之前先在這裏進行了測試。您的第二條評論缺少通配符(?或*)。 「rd」不會工作的唯一原因是目錄不爲空,在這種情況下,您需要使用'rd/s %% i'。或者如果你做了一些與我發佈的內容不同的內容。學習如何使用內置於Windows命令中的幫助系統,通過使用命令名稱和'/?'來訪問,就像我在答案中顯示的那樣。 –

相關問題