批量删除文件,没有错误消息

new*_*new 23 batch-file delete-file

我用这个命令

del "info*" 
Run Code Online (Sandbox Code Playgroud)

删除以"info"开头的一组文件.问题是有时至少存在这些文件中的一个,因此它们被删除而其他时候没有文件存在并且出现错误消息.如果这些文件不存在,我需要我的脚本不能阻止.

我看看del /的选项?但没有什么可以帮助我继续前进

请问你能帮帮我吗?

End*_*oro 23

试试这个:

del "file to delete" >nul 2>&1
del "info*" >nul 2>&1
Run Code Online (Sandbox Code Playgroud)

这会发送正常和错误消息nul.

del "file to delete" 2>nul
del "info*" 2>nul
Run Code Online (Sandbox Code Playgroud)

这仅发送错误消息nul.

  • 此方法将屏蔽与不存在的文件无关的错误消息。例如,访问被拒绝。 (2认同)

小智 22

你尝试过这样的事情:

IF EXIST [Filename] (
    del [Filename]
) ELSE (
    ...
)
Run Code Online (Sandbox Code Playgroud)

  • 这应该是公认的答案。除了不存在的文件外,被接受的文件还将掩盖错误消息。 (3认同)
  • 这适用于文件名中的外卡吗? (2认同)
  • @ParakramMajumdar不幸的是,它没有处理通配符. (2认同)

Mar*_*kus 5

另一种方式可能是这个:

for /f "delims=" %a in ('dir /B /S info*') do del "%a"

这将执行一个目录以获取合适文件的列表。如果找到,请为每个人做一个“del”。

看起来有点矫枉过正,但可以防止“找不到文件信息*”之类的错误。