2011-12-21 141 views
0

我需要一個腳本來搜索一個文件,比如abc.txt文件夾中的XYZ,直到它發現它在該位置生成爲止。該腳本應在每60秒後搜索一次該文件。一旦生成文件,它應該執行某個任務,比如將其複製到某個位置。在Windows批處理文件中循環搜索文件

回答

0

我想在這裏你正在尋找文件觀察者。如果你想使用Java,下面的鏈接將是對你有用: http://docs.oracle.com/javase/tutorial/essential/io/notification.html

您可以通過以下方式從事件獲取文件名:

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

然後你可以做你想做的任務做,如果文件被創建。

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