Windowsのコマンドラインからディレクトリを再帰的に削除するにはどうすればよいですか?


回答:


342

deltreeDOSを覚えている場合


それは更新されたようです...これはあなたが望むものです:

RMDIR /S

これにより、C:\testプロンプトでディレクトリが削除されます。

rmdir c:\test /s

これはプロンプトなしで同じことを行います:

rmdir c:\test /s /q

質問のsudo部分について、さらに特権が必要な場合は、runas次のようにコマンドを使用して別のユーザーアカウントとして新しいシェルを最初に開くことができます。

runas /user:Administrator cmd
rmdir c:\test /s /q

1
@FarmBoy、おologiesび申し上げますが、私の記憶ははるか昔に遡ります。Windows XP以降の回答を更新しました。
コリンピッカー

8
yes deltreeは古いDOSコマンドです。XPで削除され、次のものに置き換えられましたrmdir /s
10

3
/ sフラグは何を表していますか?
マイクR

Powershellでこれを行うと、何らかの理由で問題が発生します。Windowsのコマンドラインを使用してください。
DEVID

3
@MikeR、「サブディレクトリ」または何かを表す場合があります。findstrは同じパラメータを持っているので、より理にかなっているので、一貫性のために同じかもしれません。
サム

57

RmDirが触れず、エクスプローラーでも表示できない、長くて複雑なフォルダー構造をコマンドプロンプトから削除する場合、robocopyが構造の削除に非常に効率的であることがわかりました。以下の例では、フォルダー管理者の内部に大規模な構造があり、構造は非常に深いため、何も削除できません。(奇妙なことに!)「新しいフォルダ」という名前の新しい空のフォルダを作成します。次に、robocopyコマンドを使用して、ソースフォルダーが「新しいフォルダー」で、宛先フォルダーが「D:\ Administrator」で、/ MIRパラメーターを指定して、ソースフォルダーにないものをすべて削除することを通知します。

robocopy "D:\new folder" D:\Administrator /MIR

この場合、フォルダーパスは長すぎてコマンドプロンプトウィンドウのスクリーンバッファーに収まりませんが、Robocopyは構造を走査し、「余分な」ファイルとフォルダー(つまり、新しい空のフォルダーにないもの)を削除します。 )。


11
これは、あなたのパスが長く、250以上の奇数文字の場合に動作する唯一のソリューションです
カーム嵐

10

Windows Vista +を使用している場合、PowerShellで次のことができます。

rm C:\path\to\delete -r -f[orce]

6
Windows 10 -fはあいまいだと言います。しかし、あなたは走ることができますrm -r -force <path>
ブルーノLM

6

私にとって、機能するのは

del /s dir

追加/qして確認を無効にすることができます。rmdir(XPで)なんとか仕事をすることができませんでした


6
おそらく...それはもうサポートされていない、XPを使用して停止する必要があります
エリック・ウィルソン

3
私にとって、これはすべてのファイルを再帰的に削除しますが、ディレクトリ自体を削除するわけではなく、削除dirされません。
-sergiol

2

本当に長いパスがある場合(Javaプログラムエラーのために私がしたように)、robocopyでさえもできません。それは私の道に約30秒間降りて、それからハングしました。

私の解決策:問題のあるパス全体をあるフォルダーから別のフォルダーに移動できる場合、上からいくつかのディレクトリ階段を再帰的に繰り返し削除できます。

このバッチは、2つのディレクトリleerとleer2の間でピンポンを再生し、毎回8つの「ライブラリ」を切り取ります。パスにファイルが含まれている場合は、さらにコマンドを追加してそれらを消去する必要があります。

recurdel.cmd
:loop
move c:\leer\libraries\libraries\libraries\libraries\libraries\libraries\libraries\libraries c:\leer2
rd /S /Q c:\leer\libraries
move c:\leer2\libraries\libraries\libraries\libraries\libraries\libraries\libraries\libraries c:\leer
rd /S /Q c:\leer2\libraries
GOTO loop

2

CMDからRD / s C:\ path \ to \ deleteを実行するだけで、プロンプトに対してYを押す

/ sは、すべてのサブディレクトリも確実に削除されます。

コマンドラインからヘルプRDを実行する


2
ご回答いただきありがとうございます。ただし、この情報は既に承認済みの回答に含まれています。(rdそしてrmdir同じです。)おそらくコメントとしてそこに収まるでしょう。
ベンN

0

これはプロンプトなしで「私のフォルダ」を削除します:

rd /s /q "C:\Users\gourav.g\AppData\Roaming\my folder"
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.