2013-01-17 15:33:22 +0000 2013-01-17 15:33:22 +0000
59
59

Windowsでコマンドライン

を使ってフォルダを完全に削除したいのですが、中に他のフォルダやファイルが入っているフォルダを削除する必要があります。delrmdirのコマンドを試してみましたが、[PATH]: The directory isn't empty.

のようなエラーラインで失敗することがありますが、何か良い代替案はありますか?

回答 (8)

58
58
58
2013-01-17 15:38:19 +0000

確認メッセージをスキップするには、

rmdir /S your_directory

または:

rmdir /S /Q your_directory

を試してみてください。

16
16
16
2013-07-16 16:23:26 +0000

これは自動ビルドスクリプトを使っているとよく起こります。つまり、アプリケーションはファイルの削除を許可していますが(これがDeleteFile呼び出しが失敗しない理由だと思います)、ファイルはアプリケーションがハンドルを閉じた後にしか消えません。そのあとすぐに、アプリケーションはハンドルを閉じ、ファイルは消えてしまいます。ただ、私はrmdirのコマンドの間に一時停止を挿入します。もちろん Windows には簡単にスクリプト化できる “pause” コマンドはありません (訂正: 古いバージョンの Windows にはありませんが、新しいバージョンにはあります - コメントを参照してください)。しかし、もし秒単位の粒度が十分であれば、rmdir を使って一時停止を作成することができます:

ping -n {desired_delay_in_seconds + 1} 127.0.0.1 >nul

合計:

rd /s /q foo
:: retry once
if exist foo (
    :: clear errorlevel
    cmd /c
    :: pause
    ping -n 2 127.0.0.1 >nul
    :: retry
    rd /s /q foo
)
:: retry yet again
if exist foo (
    cmd /c
    ping -n 2 127.0.0.1 >nul
    rd /s /q foo
)
:: give up
if exist foo {panic}
11
11
11
2013-01-17 16:27:07 +0000

あなたはいくつかの読み取り専用ファイルを持っている可能性があります、あなたは

del /S /F your_directory
     rmdir your_directory

を使用してそれらを取り除くためにdel /Fオプションを使用することができますまた、いくつかの隠されたファイルを持っている可能性があり、あなたが本当にそれらを削除したいと確信している場合は、

del /S /F /AH your_directory
     rmdir your_directory

を使用してこれを行うことができますこれはまだ失敗した場合は、どちらかがいくつかのファイルを削除する権限を持っていないか、またはファイルのいくつかはまだ使用中です。

5
5
5
2013-01-17 22:34:36 +0000

Windows7(多分他のバージョンも)のバグでこの症状が出ることがあると思うのですが、サードパーティのソフトのバグかもしれません。(ひょっとしてSymantec Endpoint Protectionはインストールされていますか?)

とにかく、私はかなりの頻度でこの症状に遭遇しています。ほとんどの場合、rd /s /qを2~3回連続で実行すれば問題は解決します。

3
3
3
2013-01-17 15:36:33 +0000

中のファイルにはdelを使い、フォルダの削除にはrmdirを使います。

全てのファイルを同様に削除するには、ディレクトリ名の_前にrmdirのスイッチを使い、削除のプロンプトを抑えるために/Sを使います。これが一番良い方法です。ただし、/Q スイッチの使用には注意してください。

2
2
2
2017-12-01 18:08:45 +0000

ノード](https://nodejs.org/en/)を使用している場合は、次のように[rimraf](https://www.npmjs.com/package/rimraf)依存関係を使用することができます:

run install: npm install rimraf -g

delete folder: rimraf SourceFolder

これは、エラーを取得するときに私を助けてくれました:

ソースファイル名がファイルシステムでサポートされているよりも大きいです。

0
0
0
2015-11-16 14:47:29 +0000

こんな感じで使えると思います:

msg*your file is going to delete 
pause
del/s /q "C:\Users\Rd\Desktop\New folder (2)\" 
rmdir /s /q "C:\Users\Rd\Desktop\New folder (2)\"
mkdir "C:\Users\Rd\Desktop\New folder (2)"
0
0
0
2016-06-24 18:30:12 +0000

フォルダの古いバージョンのWindows(DOS、Windows 95/98/ME)では、DELTREERMRMDIRに相当します。私はWindows 7のワークステーションでバッチファイルでDELTREEを使用していますが、問題ありません。