【发布时间】:2011-12-21 06:05:43
【问题描述】:
我需要一个脚本来搜索文件夹中的文件 abc.txt,直到它发现它是在该位置生成的。该脚本应每 60 秒搜索一次文件。生成文件后,它应该执行特定任务,例如将其复制到某个位置。
【问题讨论】:
标签: windows file search loops batch-file
我需要一个脚本来搜索文件夹中的文件 abc.txt,直到它发现它是在该位置生成的。该脚本应每 60 秒搜索一次文件。生成文件后,它应该执行特定任务,例如将其复制到某个位置。
【问题讨论】:
标签: windows file search loops batch-file
基本上有两种选择。
在任务调度程序中调度批处理。这是我推荐的替代方案。
首先,创建您的 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"
或者...在你的批处理文件中循环
:DOCHECK
IF EXIST abc.txt (
ECHO abc.txt exists, do your things here...
)
WAIT60SECS
GOTO :DOCHECK
但是,糟糕,WAIT60SECS 是一个不存在的命令。有不同的方法来实现它。见http://www.robvanderwoude.com/wait.php
【讨论】:
我想你在这里寻找文件观察者。如果您想使用 Java,以下链接将对您有用: http://docs.oracle.com/javase/tutorial/essential/io/notification.html
您可以通过以下方式从事件中获取文件名:
WatchEvent<Path> ev = (WatchEvent<Path>)event;
Path filename = ev.context();
然后你可以做你想做的任务,如果文件被创建。
【讨论】: