Windowsでコマンドライン
を使ってフォルダを完全に削除したいのですが、中に他のフォルダやファイルが入っているフォルダを削除する必要があります。del
やrmdir
のコマンドを試してみましたが、[PATH]: The directory isn't empty.
のようなエラーラインで失敗することがありますが、何か良い代替案はありますか?
を使ってフォルダを完全に削除したいのですが、中に他のフォルダやファイルが入っているフォルダを削除する必要があります。del
やrmdir
のコマンドを試してみましたが、[PATH]: The directory isn't empty.
のようなエラーラインで失敗することがありますが、何か良い代替案はありますか?
これは自動ビルドスクリプトを使っているとよく起こります。つまり、アプリケーションはファイルの削除を許可していますが(これが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}
あなたはいくつかの読み取り専用ファイルを持っている可能性があります、あなたは
del /S /F your_directory
rmdir your_directory
を使用してそれらを取り除くためにdel /Fオプションを使用することができますまた、いくつかの隠されたファイルを持っている可能性があり、あなたが本当にそれらを削除したいと確信している場合は、
del /S /F /AH your_directory
rmdir your_directory
を使用してこれを行うことができますこれはまだ失敗した場合は、どちらかがいくつかのファイルを削除する権限を持っていないか、またはファイルのいくつかはまだ使用中です。
Windows7(多分他のバージョンも)のバグでこの症状が出ることがあると思うのですが、サードパーティのソフトのバグかもしれません。(ひょっとしてSymantec Endpoint Protectionはインストールされていますか?)
とにかく、私はかなりの頻度でこの症状に遭遇しています。ほとんどの場合、rd /s /q
を2~3回連続で実行すれば問題は解決します。
中のファイルにはdel
を使い、フォルダの削除にはrmdir
を使います。
全てのファイルを同様に削除するには、ディレクトリ名の_前にrmdir
のスイッチを使い、削除のプロンプトを抑えるために/S
を使います。これが一番良い方法です。ただし、/Q スイッチの使用には注意してください。
run install: npm install rimraf -g
delete folder: rimraf SourceFolder
これは、エラーを取得するときに私を助けてくれました:
ソースファイル名がファイルシステムでサポートされているよりも大きいです。
こんな感じで使えると思います:
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)"