私はそのようなディレクトリを持っています:
D:\Movies
D:\Movies\MovieTitle1\backdrops\
D:\Movies\MovieTitle2\backdrops\
D:\Movies\MovieTitle3\backdrops\
D:\Movies\MovieTitle4\backdrops\
「背景」という名前のすべてのフォルダーをバッチファイルで削除するにはどうすればよいですか?可能であれば、D:\ドライブのみから再帰的に実行することをお勧めします。
短い答え:
FOR /d /r . %d IN (backdrops) DO @IF EXIST "%d" rd /s /q "%d"
Stack Overflowの同じ質問に対する無数の回答の1つから回答を得ました。
Windowsで再帰的に指定された名前のフォルダーを削除するコマンドラインツール?
このコマンドはテストされていませんが、この回答を投稿するのに十分なほどこのサイトを信頼しています。
Alex in a comment で示唆されているように、このバッチスクリプトは確実に機能するはずです。
D:
FOR /d /r . %d IN (backdrops) DO @IF EXIST "%d" rd /s /q "%d"
コメントでは狭すぎるので、別の回答を開きます。別のフォルダとの間で実行したい場合、どうすればよいかを尋ねられ、非再帰的な削除の例を挙げたいと思います。
まず、cmdでコマンドを使用する場合は_%d
_を使用する必要がありますが、.batで使用する場合は_%%d
_を使用する必要があります。
ワイルドカードを使用して、たとえば「backdrops」で始まるフォルダーを処理できます:_"backdrops*"
_。
再帰 .batが入っているフォルダーから始まるフォルダーの削除:
FOR /d /r . %d IN ("backdrops") DO @IF EXIST "%d" rd /s /q "%d"
Non-recursive .batがあるフォルダー内のフォルダーの削除(とにかく同じ名前のフォルダーを複数持つことはできないため、ワイルドカードで使用):
FOR /d %d IN ("backdrops*") DO @IF EXIST "%d" rd /s /q "%d"
再帰選択したフォルダーから始まるフォルダーの削除:
FOR /d /r "PATH_TO_FOLDER" %d IN ("backdrops") DO @IF EXIST "%d" rd /s /q "%d"
Non-recursive選択したフォルダー内のフォルダーの削除(とにかく同じ名前のフォルダーを複数持つことはできないため、ワイルドカードで使用):
FOR /d %d IN ("PATH_TO_FOLDER/backdrops*") DO @IF EXIST "%d" rd /s /q "%d"