在Windows批处理文件中循环进行文件搜索

时间:2011-12-21 06:05:44

标签: windows file search loops batch-file

我需要一个脚本来搜索文件,说abc.txt在文件夹中说XYZ,直到它发现它是在该位置生成的。脚本应该每隔60秒搜索一次文件。生成文件后,它应该执行某项任务,比如将其复制到某个位置。

2 个答案:

答案 0 :(得分:1)

基本上有两种选择。

  1. 在任务计划程序中安排批处理。这是我推荐的替代方案。

    • 首先,创建checkabc.bat文件,类似于此

      @echo off
      if exist c:\xyz\abc.txt (
        rem do here what you want
      )
      
    • 然后,安排每分钟运行

      schtasks /create /sc minute /mo 1 /tn "check abc.txt exists" /tr "cmd /c c:\bats\checkabc.bat"
      
  2. 或批处理文件中的...循环

    :DOCHECK
    IF EXIST abc.txt (
      ECHO abc.txt exists, do your things here...
    )
    WAIT60SECS
    GOTO :DOCHECK
    

    但是,oops,WAIT60SECS是一个不存在的命令。有不同的方法来实现它。请参阅http://www.robvanderwoude.com/wait.php

答案 1 :(得分:0)

我想在这里你正在寻找文件观察者。如果您想使用Java,以下链接对您有用: http://docs.oracle.com/javase/tutorial/essential/io/notification.html

您可以通过以下方式从事件中获取文件名:

  WatchEvent<Path> ev = (WatchEvent<Path>)event;
  Path filename = ev.context();

然后,如果创建了文件,则可以执行您要执行的任务。