2017-05-09 40 views
1

Windowsでバッチファイルを使用して特定の文字列を含むディレクトリを削除する方法は?

How to delete files containing certain string using batch file in Windows?

から私はマス特定の文字列を含むファイルを削除する方法を学びました。私がしたことは

del *(2)* /f /s 

ですが、これはディレクトリを削除しませんでした。ファイルを削除するだけです。

特定の文字列を含むディレクトリを大量に削除するにはどうすればよいですか?

答えて

0

同じレベルのファイルとディレクトリを削除する標準のWindowsコマンドはありません。ファイルにはDELが使用されますが、ディレクトリにはRMDIR/RDが使用されます(ただし、ディレクトリ内にあるディレクトリ内のファイルは削除できます)。

RMDIR/RDはワイルドカードでは機能しませんので、FORループを使用する必要があります。そうであるように、以下のコードはあなたの質問のディレクトリを削除するコマンドを表示します。削除があなたの望むことを行うと確信したら、ECHOを削除してください。

@ECHO OFF 
FOR /F "tokens=*" %%G IN ('DIR /B /AD /S "*(2)*"') DO (
    ECHO RMDIR /S /Q "%%G" 
) 
ます。また...ワンライナーにこれを減らすことができ

FOR /F "tokens=*" %%G IN ('DIR /B /AD /S "*(2)*"') DO ECHO RMDIR /S /Q "%%G" 
...そしてあなたは、シェルで直接それを実行したい場合( .batファイルからではなく) 、実行します。

FOR /F "tokens=*" %G IN ('DIR /B /AD /S "*(2)*"') DO ECHO RMDIR /S /Q "%G" 

国旗の説明:

  • FOR
    • /F:ディレクトリ
    • /Sためのフィルタ:裸のフォーマット(それはFORで動作しますので、必要に応じて)
    • /AD:ファイルセット
  • DIR
    • /Bを反復処理:作業再帰
  • RMDIR
    • /S:再帰
    • /Qを働く:Quietモード
関連する問題