批量删除文件时如何避免错误提示信息

55

我使用命令

del "info*" 

删除以“info”开头的一组文件。问题在于有时至少存在其中一个文件,因此它们被删除,而其他时候没有文件存在,并且会出现错误消息。我需要确保脚本在这些文件不存在时不会阻塞。

我查看了del /? 的选项,但没有什么帮助我继续。

请问你能帮忙吗?


你使用过 del /q info*.* 吗? - Pradeep Pati
1
我认为/Q参数只允许你跳过确认消息,但它仍然会输出一个错误消息"无法找到[...]"。不过可能我错了。 - RelevantUsername
@RelevantUsername 你说得没错。 - perlyking
删除 node_modules 目录的命令是 DEL /F/Q/S node_modules > NUL 2>&1 & RMDIR /S/Q node_modules > NUL 2>&1 - Manohar Reddy Poreddy
3个回答

70

你尝试过像这样的东西吗:

IF EXIST [Filename] (
    del [Filename]
) ELSE (
    ...
)

5
这应该成为被接受的答案。被接受的那个会遮盖除文件不存在之外的错误信息。 - Jamie
7
很抱歉,它无法处理通配符。 - Parker

49

试一下这个:

del "file to delete" >nul 2>&1
del "info*" >nul 2>&1

这个命令将普通消息和错误消息发送到 nul

del "file to delete" 2>nul
del "info*" 2>nul

这将只发送错误消息到 nul


8
该方法会屏蔽与文件不存在无关的错误信息,例如访问被拒绝的情况。 - Jamie

6
另一种方法可能是这样的:
for /f "delims=" %a in ('dir /B /S info*') do del "%a"
这将执行 dir 命令以获取适当文件的列表。如果找到任何文件,则针对每个文件执行“del”操作。
看起来有点过度,但可以防止出现“找不到文件 info*”等错误。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接