web-dev-qa-db-ja.com

「bin」または「obj」という名前のすべてのフォルダを再帰的に削除するバッチファイルを作成するにはどうすればよいですか?

PCのフォルダー内のbinおよびobjフォルダーをすべて削除する必要があります。だから、私はそれを行うためのバッチファイルを考えていますが、私はWindowsのバッチファイルに慣れていません。助けてください。

[編集]

ユーザーDMA57361と話し合った後、現在の解決策にたどり着きました(まだ問題がありますが、コメントを参照してください)。

.batファイルを作成し、以下のコマンドを貼り付けます。

start for /d /r . %%d in (bin,obj) do @if exist "%%d" rd /s/q "%%d"

OR

start for /d /r . %%d in (bin,obj) do @if exist "%%d" rd /s "%%d"

@ DMA57361:スクリプトを実行すると、以下のエラーが発生します。何か案が?

alt text

31
Nam G VU

これは以前に answered スタックオーバーフローで終了しました。ここで、この回答の主な推力を取り上げました。

次のコマンドを試してください。cmd内から実行できます。

for /d /r . %d in (bin,obj) do @if exist "%d" rd /s/q "%d"

他のフォルダを変更する必要がある場合は、コマンドの途中で(bin,obj)セットに新しい項目を追加するだけです。

これにより、警告なしでごみ箱を使用せずに一致したすべてが削除されます-したがって、少し安全性を高めたい場合は、/qを最後にrdを入力すると、削除する前にシステムから確認を求められます。

for /d /r . %d in (bin,obj) do @if exist "%d" rd /s "%d"

バッチファイル内からコマンドを実行する場合は、次のように、変数%dのすべてのインスタンスを%%dで置き換える必要があります。

for /d /r . %%d in (bin,obj) do @if exist "%%d" rd /s/q "%%d"
OR
for /d /r . %%d in (bin,obj) do @if exist "%%d" rd /s "%%d"

変換ごとに質問のコメントにあった

コマンドがバッチファイルでの実行を拒否する場合(ここでは複製できない)、コマンドの先頭にstartを付けてみてください。これにより、バッチファイルと同時に実行されるプロセスが開始されますが、他の問題が発生する可能性がありますが、正しく機能する可能性が高くなります。

また、コマンドが機能しているフォルダーツリー内にobjまたはbinという名前のfilesがある場合、次のエラーメッセージが表示されます。一致する名前を持つ各ファイルが検出されました。これらの一致したファイルは削除されないため、削除する必要のあるコマンドを削除する必要はありません。つまり、安全に無視できます。

42
DMA57361

これらのコマンドはcmdで機能するはずです。

del * .obj

del * .bin

1
arun babu

するだけ

del /s /p bin
del /s /p obj
0
MikeSchem