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

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

112931 次浏览

del命令的输出重定向为 null。注意 2,以指示应重定向错误输出。参见 这个问题,特别是技术文档 Using command redirection operators

del {whateveroptions} 2>null

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

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

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

您可以将 stderr 重定向到 null

del filethatdoesntexist.txt 2>nul

将 stderr 重定向到 null

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>

The above comes up with Y or N in the prompt. So, I used the following instead and it works perfectly.

if exist cddd rmdir cddd

希望这对谁有帮助。

Cheers.