我需要一个 Windows 命令来删除一个目录及其所有包含的文件,但如果该目录不存在,我不想看到任何错误。
问问题
101415 次
5 回答
98
将命令的输出重定向del
到 nul。注意2
, 表示错误输出应该被重定向。另请参阅此问题,尤其是技术文档Using command redirection operator。
del {whateveroptions} 2>null
或者您可以在调用之前检查文件是否存在del
:
if exist c:\folder\file del c:\folder\file
请注意,您可以使用if exist c:\folder\
(带有尾随\
)来检查是否c:\folder
确实是文件夹而不是文件。
于 2013-01-24T13:36:46.793 回答
68
要么将 stderr 重定向到 nul
rd /q /s "c:\yourFolder" 2>nul
或者在删除之前验证该文件夹是否存在。请注意,拖尾\
在 IF 条件下至关重要。
if exist "c:\yourFolder\" rd /q /s "c:\yourFolder"
于 2013-01-24T15:14:10.137 回答
31
对我来说,在 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>
于 2018-10-12T10:00:51.737 回答
2
您可以将 stderr 重定向到 nul
del filethatdoesntexist.txt 2>nul
于 2013-01-24T13:45:44.193 回答
0
上面在提示中出现了 Y 或 N。因此,我改用了以下内容,并且效果很好。
if exist cddd rmdir cddd
希望这可以帮助某人。
干杯。
于 2019-10-24T14:15:07.730 回答