我需要一个Windows命令来删除一个目录和其中的所有文件,但是如果该目录不存在,我不想看到任何错误信息。
将del
命令的输出重定向到nul。请注意2
,表示错误输出应该被重定向。另请参阅此问题,特别是技术文档“使用命令重定向运算符”。
del {whateveroptions} 2>null
或者您可以在调用del
之前检查文件是否存在:
if exist c:\folder\file del c:\folder\file
请注意,您可以使用 if exist c:\folder\
(带有尾随的\
)来检查c:\folder
是否确实是一个文件夹而不是一个文件。将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
配对时它将无法工作。 - noszonedel filethatdoesntexist.txt 2>nul
上面的代码会在提示框中返回 Y 或 N。所以我使用了下面的代码,它完美地解决了问题。
if exist cddd rmdir cddd
干杯。
rmdir /s /q some\where\myFolder 2>nul
- crusyrmdir
=rd
)。 - GolezTrol