【发布时间】:2013-01-08 06:48:49
【问题描述】:
我需要一个 Windows 命令来删除一个目录及其所有包含的文件,但如果该目录不存在,我不想看到任何错误。
【问题讨论】:
标签: windows batch-file cmd
我需要一个 Windows 命令来删除一个目录及其所有包含的文件,但如果该目录不存在,我不想看到任何错误。
【问题讨论】:
标签: windows batch-file cmd
将del 命令的输出重定向到 nul。注意2,表示错误输出应该被重定向。另请参阅this question,尤其是技术文档Using command redirection operators。
del {whateveroptions} 2>null
或者你可以在调用del之前检查文件是否存在:
if exist c:\folder\file del c:\folder\file
请注意,您可以使用if exist c:\folder\(以\ 结尾)来检查c:\folder 是否确实是文件夹而不是文件。
【讨论】:
rmdir /s /q some\where\myFolder 2>nul
rmdir = rd)
要么将 stderr 重定向到 nul
rd /q /s "c:\yourFolder" 2>nul
或者在删除之前验证文件夹是否存在。请注意,结尾的 \ 在 IF 条件下很关键。
if exist "c:\yourFolder\" rd /q /s "c:\yourFolder"
【讨论】:
对我来说,在 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>
【讨论】:
rmdir 与 if exist 配对时它不会工作。
您可以将 stderr 重定向到 nul
del filethatdoesntexist.txt 2>nul
【讨论】:
上面的提示中出现了 Y 或 N。因此,我改用了以下方法,并且效果很好。
if exist cddd rmdir cddd
希望这对某人有所帮助。
干杯。
【讨论】: