如何处理在批处理文件上运行命令时出现的错误

时间:2020-05-14 17:47:14

标签: windows batch-file command-line-arguments

我有这个批处理文件,应该找到并删除特定的文件,但是在找不到文件时,它会不断返回并显示错误。 我已从DELETE命令中删除了/ S开关,以使找到的文件保持静音。 代码如下:

For /F "delims=" %%A in (
  'Dir /B/S "*,*" ^| findstr ",[0-9][0-9]*$" '
) Do Del "%%A"
DEL /Q *.bak
ECHO bak files deleted
DEL /Q *.prjpcb.zip
ECHO Project History Zips deleted
DEL /Q *.pcbdoc.zip
ECHO PCB History Zips deleted
DEL /Q *.SchDoc.zip
ECHO Schematic History Zips deleted
DEL /Q *.PcbLib.zip
ECHO PCB Library History Zips deleted
DEL /Q *.SchLib.zip
ECHO Schematic Library History Zips deleted
DEL /Q *.OutJob.zip
ECHO Output Jobs History Zips deleted
ECHO on
TIMEOUT 5 

在删除文件时如何使文件仅显示回显,如果什么也没找到,什么也不会显示?

1 个答案:

答案 0 :(得分:0)

如果您真的只是不想从命令中看到任何信息,则可以将输出重定向到nul:

del /q *.bak >nul 2>&1

>nul重定向 standard 输出,2>&1 error 输出重定向到与 standard 输出相同的位置。请注意,>nul可以写为1>nul,因为它是“第一”输出流(标准)。

还要注意,nul代表2个输出流的特殊情况,因此您可以执行以下操作:

del /q *.bak >nul 2>nul

https://ss64.com/nt/syntax-redirection.html