在批处理文件调度/调用中需要一些建议

时间:2011-10-18 09:26:30

标签: batch-file

我有一个批处理文件,它调用一个需要输入作为文本文件的Perl文件

CreateTasks.bat:

Createtask.pl -f %1

其中%1 - "C:\task\TASK1234.txt"

文件TASKxxx.txt(例如:TASK1234.txt)将从另一个应用程序创建,任何时候文件夹C:\ task \'都可以包含一个以上的Tasxxx.txt文件

我想为每个文件调用CreateTasks.bat一次,原因是此文件夹将填入文本文件,并且需要监视此文件夹。

我怎样才能实现这一目标?

我在考虑安排一个每隔5分钟运行一次的批处理文件。始终获取第一个文件并调用此批处理文件

这是一个好方法吗?

如果有什么不清楚,请告诉我,我会尽力澄清

由于

KARTHIK

1 个答案:

答案 0 :(得分:2)

您可以使用定期循环遍历给定文件夹中给定扩展名的所有文件的BAT文件,并且对于找到的每个此类文件,它将调用一些特殊进程,如果成功,则重命名该文件,使其不会再次处理它。这个简单的代码实现了这个策略的主要思想,用它来帮助你开始。

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

但是,请仔细观察,因为这条路上有很多陷阱;引用一些内容,注意错误处理,解决可能出现的问题,即取消进程,停止执行,双重或多次执行,甚至并行执行,并考虑您可能准备的所有检查中的竞争条件。