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

jay*_*yco 72 windows cmd batch-file

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

Gol*_*rol 72

del命令的输出重定向到nul.注意2,应指示错误输出重定向.另请参阅此问题,尤其是技术文档使用命令重定向运算符.

del {whateveroptions} 2>nul
Run Code Online (Sandbox Code Playgroud)

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

if exist c:\folder\file del c:\folder\file
Run Code Online (Sandbox Code Playgroud)

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

  • 然后使用`if exist` (4认同)
  • 强制递归删除,忽略错误:`rmdir / s / q some \ where \ myFolder 2> nul` (3认同)

dbe*_*ham 50

将stderr重定向到nul

rd /q /s "c:\yourFolder" 2>nul
Run Code Online (Sandbox Code Playgroud)

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

if exist "c:\yourFolder\" rd /q /s "c:\yourFolder"
Run Code Online (Sandbox Code Playgroud)

  • @GolezTrol - 你们都没有按照OP的要求删除文件夹.你们两个都专注于删除文件. (14认同)

chr*_*007 8

对我来说,在Windows 10上,以下功能运行良好:

if exist <path> rmdir <path> /q /s
Run Code Online (Sandbox Code Playgroud)

q代表“无需询问就删除”,s代表“删除其中的所有子文件夹和文件”。

您还可以简化命令:

(if exist <path> rmdir <path> /q /s) && <some other command that executes after deleting>
Run Code Online (Sandbox Code Playgroud)