Нужны некоторые предложения в планировании / вызове пакетного файла - PullRequest
0 голосов
/ 18 октября 2011

У меня есть пакетный файл, который вызывает Perl-файл, который требует ввода в виде текстового файла

CreateTasks.bat:

Createtask.pl -f %1

где %1 - "C:\task\TASK1234.txt"

Файл TASKxxx.txt (например, TASK1234.txt) будет создан из другого приложения, и в любой момент папка C: \ task \ 'может содержать еще один файл Tasxxx.txt

Я хочу вызвать CreateTasks.bat один раз для каждого файла, причина в том, что эта папка будет заполнена текстовым файлом, и эту папку необходимо отслеживать.

Как мне позвонить, чтобы добиться этого?

Я думал о планировании пакетного файла, который запускается каждые 5 минут.Получите всегда первый файл и назовите этот пакетный файл

. Это хороший подход?

, если что-то не понятно, пожалуйста, дайте мне знать, и я постараюсь уточнить

Спасибо

Картик

1 Ответ

2 голосов
/ 18 октября 2011

Вы можете использовать BAT-файл, который периодически зацикливается на всех файлах с заданным расширением в данной папке, и для каждого такого найденного файла он будет вызывать какой-то особый процесс и, в случае успеха, переименовывать файл, чтобы обработайте это снова. Этот простой код реализует основную идею этой стратегии, используйте ее, чтобы начать работу.

  @ECHO OFF
  SET TASKPATH=c:\temp
  SET TASKEXT=tst
  FOR %%A IN ("%TASKPATH%\*.%TASKEXT%") DO (
    ECHO DOMYTASK "%%A"  
    REN "%%A" "%%~nA.DONE"
  )

Но, следите внимательно, на этой дороге много ловушек; чтобы процитировать некоторые из них, позаботьтесь об обработке ошибок, устраните возможные проблемы с отменой процессов, остановленным выполнением, двойным или множественным выполнением, даже параллельно, и учитывайте условия гонки во всех проверках, которые вы можете подготовить.

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