使用命令行删除目录及其文件,但如果不存在则不抛出错误

时间:2013-01-24 13:34:00

标签: windows batch-file cmd

我需要Windows命令来删除目录及其包含的所有文件,但如果目录不存在,我不希望看到任何错误。

5 个答案:

答案 0 :(得分:67)

del命令的输出重定向到nul。请注意2,以指示应重定向错误输出。另请参阅this question,尤其是技术文档Using command redirection operators

del {whateveroptions} 2>nul

或者您可以在致电del之前检查文件是否存在:

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

请注意,您可以使用if exist c:\folder\(使用尾随\)来检查c:\folder是否确实是文件夹而不是文件。

答案 1 :(得分:47)

将stderr重定向到nul

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

或者在删除之前验证该文件夹是否存在。请注意,尾随\在IF条件中至关重要。

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

答案 2 :(得分:4)

对我来说,在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 :(得分:3)

您可以将stderr重定向到nul

del filethatdoesntexist.txt 2>nul

答案 4 :(得分:0)

上面的提示中带有Y或N。因此,我改用了以下内容,并且效果很好。

if exist cddd rmdir cddd

希望这对某人有帮助。

干杯。