用于根据文件名搜索文件的Windows批处理脚本,检查文件是否早于N天,如果为true,则删除这些文件

时间:2015-11-12 09:50:58

标签: windows batch-file

我是Windows批处理脚本的新手。我已经通过网络和网站进行了研究并尝试了解决方案,但似乎没有人给我预期的结果。

这就是我想要实现的目标:

  1. 使用特定文件名搜索文件夹中的文件
  2. 显示找到的文件
  3. 检查找到的文件是否超过1天
  4. 如果为true,请删除这些文件
  5. 其他退回邮件(找不到超过1天的文件)
  6. 根据我的研究,我能够编写一个使用字符串搜索文件的批处理代码,但无法执行步骤2,3,4和5.

    请帮忙。

    这是我的批次代码:

    @echo off & setlocal
    set "MySearchString=Scheduled_error"
    for /r %%a in (*) do for /f "delims=" %%i in ('echo("%%~na" ^| findstr /i "%MySearchString%"') do echo del "%%~fa"
    

1 个答案:

答案 0 :(得分:1)

似乎是FORFILES的完美任务!

forfiles /p c:\SomePath\ /s /m *.* /c "cmd /c echo @path"会显示超过一天的所有文件。您可以修改使用您要查找的文件名替换*.*的过滤器。

要删除这些文件,只需将echo @path替换为del /y @path,然后添加/d -1参数:

forfiles /p c:\SomePath /s /m *.* /d -1 /c "cmd /c del /y @path"

要删除的文件的年龄是使用/d -1开关指定的,其中-1表示1天及以上。