Цикл для поиска файлов в пакетном файле Windows - PullRequest
0 голосов
/ 21 декабря 2011

Мне нужен скрипт для поиска файла, скажем, abc.txt, в папке, скажем, XYZ, пока он не обнаружит, что он генерируется в этом месте.Скрипт должен искать файл через каждые 60 секунд.Как только файл сгенерирован, он должен выполнить определенную задачу, скажем, скопировать его в какое-то место.

Ответы [ 2 ]

1 голос
/ 21 декабря 2011

В основном есть две альтернативы.

  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

0 голосов
/ 21 декабря 2011

Я думаю, что здесь вы ищете файл наблюдателя.Если вы хотите использовать Java, вам будет полезна следующая ссылка: http://docs.oracle.com/javase/tutorial/essential/io/notification.html

Вы можете получить имя файла из события следующим образом:

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

И тогда вы можете сделатьзадание, которое вы хотите выполнить, если файл создан.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...