【问题标题】:Loop for file search in Windows batch file在 Windows 批处理文件中循环进行文件搜索
【发布时间】:2011-12-21 06:05:43
【问题描述】:

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

【问题讨论】:

    标签: windows file search loops batch-file


    【解决方案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
      

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

    【讨论】:

      【解决方案2】:

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

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

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

      然后你可以做你想做的任务,如果文件被创建。

      【讨论】:

        猜你喜欢
        • 2023-03-23
        • 1970-01-01
        • 2010-11-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-27
        • 1970-01-01
        相关资源
        最近更新 更多