以前のバージョンのMS-DOS(バージョン7と言いたいのですが、間違っている可能性がdeltree
あります)には、指定されたパスからすべてのサブディレクトリとファイルを再帰的に削除するコマンドがありました。
deltree
もはや存在しませんがdel
、ツリーを削除する機能を継承していないようです。del /s
ファイルは削除しますが、フォルダは削除しません。
バッチファイルからツリーを簡単に(つまり、1つのコマンドで)削除するにはどうすればよいですか?
以前のバージョンのMS-DOS(バージョン7と言いたいのですが、間違っている可能性がdeltree
あります)には、指定されたパスからすべてのサブディレクトリとファイルを再帰的に削除するコマンドがありました。
deltree
もはや存在しませんがdel
、ツリーを削除する機能を継承していないようです。del /s
ファイルは削除しますが、フォルダは削除しません。
バッチファイルからツリーを簡単に(つまり、1つのコマンドで)削除するにはどうすればよいですか?
他の人が述べたように、rd
コマンドには/s
サブディレクトリを再帰的に削除するスイッチがあります。これをスイッチと組み合わせて、/q
プロンプトを出さずにサブディレクトリ (およびその内容) を強制的に削除することができます。
rd /s /q c:\foobar
誰もが見逃しているのは、Google によって返される一見 (ほぼ) すべてのページの正確な代替でrd
はないということです。このコマンドはディレクトリとファイルの両方に対して機能するため、1 つの便利な汎用削除コマンドになりました。つまり、次の両方が有効です。deltree
windows deltree
deltree
deltree /y c:\foobar
deltree /y c:\baz.txt
ただしrd
、(当然のことながら)ディレクトリに対してのみ機能します。そのため、これらのコマンドの最初のコマンドのみが有効ですが、2 番目のコマンドではエラーが発生し、ファイルは削除されません。
rd /s /q c:\foobar
rd /s /q c:\baz.txt
さらに、del
コマンドはディレクトリではなくファイルに対してのみ機能するため、最初のコマンドはエラーを返しますが、2 番目のコマンドのみが有効です。
del /f /q c:\foobar
del /f /q c:\baz.txt
で実行できるように、ファイルとディレクトリを削除する組み込みの方法はありませんdeltree
。rd
and を個別に使用del
することは、ファイル システム オブジェクト (ファイル/フォルダー名) が常に可能または実用的ではないファイルまたはディレクトリであるかどうかを区別する必要があるため、せいぜい不便です。
deltree
コマンドは以前の OS からコピーできますが、16 ビット DOS コマンドであるため (Windows 9x でも)、32 ビット バージョンの Windows でのみ機能します。
del
もう 1 つのオプションは、 と の両方を呼び出すバッチ ファイルを作成することrd
です。このようなもの:
::deltree.bat
@echo off
rd %* 2> nul
del %* 2> nul
次のように呼び出します。
deltree.bat /s /q /f c:\foobar
deltree.bat /s /q /f c:\baz.txt
これは と の両方rd
を呼び出しdel
、引数を渡し、出力を にリダイレクトして、nul
いずれかが常に発生するエラーを回避します。
パラメータに対応または単純化するか、エラー メッセージを許可するために動作をカスタマイズすることをお勧めしますが、それでも理想的ではなく、 の直接的な置き換えにはなりませんdeltree
。
別の方法として、サードパーティ製のツールを入手することもできますが、サードパーティ製のツールを見つけることは、検索クエリを作成するための実際の作業です。
次のコマンドに置き換えられました:RMDIRまたはRD
/Sを使用してすべてのサブディレクトリを削除します
/Qで静かに使用してください
例:
RMDIR /S /Q Folder2Delete
RD /S /Q Folder2Delete
ドキュメンテーション:
懐かしさを感じて、独自の deltree.exe を作成しました。ディレクトリとファイルの両方で動作し、高速化のために SHFileOperation() を使用します。
https://github.com/ai7/toolbox/tree/master/deltree
deltree v1.01 [Mar 27 2015, 16:31:02] (gcc 4.9.1)
Usage: deltree [options] <path> ...
Options:
-y yes, suppresses prompting for confirmation
-s silent, do not display any progress dialog
-n do nothing, simulate the operation
-f force, no prompting/silent (for rm compatibility)
-r ignored (for rm compatibility)
Delete directories and all the subdirectories and files in it.
ワイルドカードが必要で、unix rm のように使用できます。
deltree -rf *
rmdir /s /q directory
$ヘルプrd ディレクトリを削除(削除)します。 RMDIR [/ S] [/ Q] [ドライブ:]パス RD [/ S] [/ Q] [ドライブ:]パス /S指定されたディレクトリ内のすべてのディレクトリとファイルを削除します ディレクトリ自体に加えて。ディレクトリを削除するために使用されます 木。 / Qクワイエットモード、/Sでディレクトリツリーを削除しても大丈夫かどうか尋ねないでください
実際、最新の Windows オペレーティング システムの RMDIR および RD コマンドは、Win 98 の RD コマンドと Deltree コマンドの両方を 1 つのコマンドにマージします。これは内部コマンドであるため、RD.exe と RMDIR.exe は見つかりません。
この「RD /?」と入力すると、ダブルクォートなしのcmdでは、まさにあなたが望むものを得るでしょう。
ディレクトリとそのすべての内容を再帰的に削除する
rd /s MY_DOOMED_DIR
すべてのファイルとサブディレクトリを削除する
cd /d Directory && rd /s /q .\