我需要Windows命令来删除目录及其包含的所有文件,但如果目录不存在,我不希望看到任何错误。
答案 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
希望这对某人有帮助。
干杯。