【问题标题】:Delete files in batch with without error message批量删除文件,没有错误消息
【发布时间】:2013-05-14 20:42:55
【问题描述】:

我使用命令

del "info*" 

删除一组以“info”开头的文件。问题是有时有 至少存在这些文件之一,因此它们被删除,其他时候不存在文件并且发生错误消息。 如果这些文件不存在,我需要我的脚本不能阻塞。

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

你能帮帮我吗?

【问题讨论】:

  • 你在用del /q info*.*吗?
  • 我认为 /Q 参数只允许您跳过确认消息,它仍然会输出错误“找不到 [...]”。不过可能是错的
  • @RelevantUsername 你没看错

标签: batch-file delete-file


【解决方案1】:

你有没有尝试过这样的事情:

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

【讨论】:

  • 这应该是公认的答案。除了文件不存在之外,被接受的会掩盖错误消息。
  • @ParakramMajumdar 不幸的是,它不处理通配符。
【解决方案2】:

试试这个:

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

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

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

这只会将错误消息发送到nul

【讨论】:

  • 此方法将屏蔽与不存在的文件无关的错误消息。例如,拒绝访问。
【解决方案3】:

另一种方式可能是这个:

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

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

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

【讨论】:

    猜你喜欢
    • 2021-04-25
    • 1970-01-01
    • 2020-07-22
    • 1970-01-01
    • 2012-08-19
    • 1970-01-01
    • 1970-01-01
    • 2013-02-17
    • 2021-01-28
    相关资源
    最近更新 更多