web-dev-qa-db-ja.com

バッチファイルを使用して、名前にtmpが含まれるすべてのフォルダを削除します

これをグーグルで検索しようとしましたが、私は常に.tmpファイルに関連する結果を取得しているようです。これは実際には何の役にも立ちません。

私はバッチファイルの基本的な理解しか持っていませんが、次のようなものが必要だと思います。

rmdir "D:\*.tmp"

Windows Updateは、空き容量が最も多いため、すべての.tmpフォルダーをDドライブにダンプしているようです。結構ですが、後で削除することはありません。

私はバッチファイルを書きたいと思っています。それは最後に.tmpがあるフォルダを通過して削除します。

2
James Edmonds

この1つのライナーをbatファイルにスローします。

FOR /D /R c:\FOLDERLOCATION %%X IN (*.tmp) DO RMDIR /S /Q "%%X"

  • / D-ディレクトリ用
  • / R-再帰的

これにより、tmpで終わるフォルダとその下にあるものがすべて削除されます。ファンシーになりたい場合は、次のように実行できます。

@echo off
set dir="c:\FOLDERLOCATION\"
FOR /D /R %dir% %%X IN (*.tmp) DO RMDIR /S /Q "%%X"
pause
exit
4
RomeNYRR

その行の最後に/Sを追加すると、ワイルドカード検索に一致する指定されたすべてのフォルダーとサブフォルダーが削除されると思います。動作することを確認できたら、メモ帳に入れて.batファイルとして保存できます。残念ながら、私は古い学校であり、Powershellの方法でそれを行う方法がわかりません。 :o(

1
marcosrodriguez

@RomeNYRRの回答を改善しました-@ RomeNYRRに感謝します!

このコマンドは、削除されたフォルダーをエコーし​​、「要素が見つかりません」というエラーメッセージを非表示にします。

for /d /r . %X in (*.tmp) do @rmdir /s /q "%X" 2> nul && @echo Deleted %X

コンパイラの後でクリーンアップする必要がある場合に最適です...;)

for /d /r . %X in (bin obj) do @rmdir /s /q "%X" 2> nul && @echo Deleted %X
0
Robert Kopeć