コマンドラインを使用してディレクトリとそのファイルを削除しますが、存在しない場合はエラーをスローしません


83

ディレクトリとそれに含まれるすべてのファイルを削除するにはWindowsコマンドが必要ですが、ディレクトリが存在しない場合はエラーを表示したくありません。

回答:


80

delコマンドの出力をnulにリダイレクトします。2エラー出力をリダイレクトする必要があることを示すために、に注意してください。この質問、特にコマンドリダイレクト演算子の使用に関する技術ドキュメントも参照してください。

del {whateveroptions} 2>nul

または、呼び出す前にファイルの存在を確認できますdel

if exist c:\folder\file del c:\folder\file

if exist c:\folder\(末尾に\)を使用して、c:\folderが実際にファイルではなくフォルダであるかどうかを確認できることに注意してください。


これを試してみましたが、まだ「指定されたパスが見つかりません」という
メッセージが表示

3
フォース再帰的な削除、エラーを無視:rmdir /s /q some\where\myFolder 2>nul
crusy

@crusy感謝、それは同じ答え(あるrmdir=rdすでに正確に与えたdbenham)6年
GolezTrol

59

stderrをnulにリダイレクトする

rd /q /s "c:\yourFolder" 2>nul

または、削除する前にフォルダが存在することを確認してください。\IF条件では、末尾が重要であることに注意してください。

if exist "c:\yourFolder\" rd /q /s "c:\yourFolder"

14
@ GolezTrol-OPの要求に従って、どちらもフォルダを削除しませんでした。二人ともファイルの削除に集中しました。
dbenham 2013年

21

Windows 10の私にとって、以下はうまく機能しています。

if exist <path> rmdir <path> /q /s

q「尋ねずに削除する」のs略で、「その中のすべてのサブフォルダとファイルを削除する」の略です。

また、コマンドを連結することもできます。

(if exist <path> rmdir <path> /q /s) && <some other command that executes after deleting>

3

stderrをnulにリダイレクトできます

del filethatdoesntexist.txt 2>nul

1
これを試しましたか?これは機能しません。それが存在しない場合でも、エラーが表示されます
dgo 2017

1

上記のプロンプトでYまたはNが表示されます。そこで、代わりに以下を使用しましたが、完全に機能します。

if exist cddd rmdir cddd

これが誰かを助けることを願っています。

乾杯。


プロンプトを回避するには、rmdirコマンドに/ Qを追加する必要があります。すべてのファイルとサブディレクトリを削除する必要がある場合は、/ Sも必要です。ディレクトリがなかったためか、プロンプトが表示されませんでした。
bemipefe
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.