我有一个批处理文件,它调用一个需要输入作为文本文件的Perl文件
CreateTasks.bat:
Createtask.pl -f %1
其中%1 - "C:\task\TASK1234.txt"
文件TASKxxx.txt(例如:TASK1234.txt)将从另一个应用程序创建,任何时候文件夹C:\ task \'都可以包含一个以上的Tasxxx.txt文件
我想为每个文件调用CreateTasks.bat
一次,原因是此文件夹将填入文本文件,并且需要监视此文件夹。
我怎样才能实现这一目标?
我在考虑安排一个每隔5分钟运行一次的批处理文件。始终获取第一个文件并调用此批处理文件
这是一个好方法吗?
如果有什么不清楚,请告诉我,我会尽力澄清
由于
KARTHIK
答案 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"
)
但是,请仔细观察,因为这条路上有很多陷阱;引用一些内容,注意错误处理,解决可能出现的问题,即取消进程,停止执行,双重或多次执行,甚至并行执行,并考虑您可能准备的所有检查中的竞争条件。