Windows 如何使用任务调度器连续运行.bat文件?

Windows 如何使用任务调度器连续运行.bat文件?,windows,batch-file,cmd,Windows,Batch File,Cmd,我有一个简单的批处理脚本,它从一个文件夹中处理文件,然后将这些文件移动到另一个文件夹。我设置了一个工作正常的任务调度程序。但是,如果另一个任务在上一个任务结束之前运行cmd,它将与复制/移动文件作业混淆。我们是否可以将下一个任务运行的任务调度程序设置为“仅当上一个任务结束时”呢 这是我目前设置的屏幕截图 正如Ikegami在评论中提到的,您可以使用锁文件来测试批处理文件是否正在运行,并在脚本完成时让相同的进程删除锁文件。您必须确保脚本不会意外退出 另一种方法是将以下内容添加到批处理文件的顶部 @

我有一个简单的批处理脚本,它从一个文件夹中处理文件,然后将这些文件移动到另一个文件夹。我设置了一个工作正常的任务调度程序。但是,如果另一个任务在上一个任务结束之前运行cmd,它将与复制/移动文件作业混淆。我们是否可以将下一个任务运行的任务调度程序设置为“仅当上一个任务结束时”呢

这是我目前设置的屏幕截图

正如Ikegami在评论中提到的,您可以使用锁文件来测试批处理文件是否正在运行,并在脚本完成时让相同的进程删除锁文件。您必须确保脚本不会意外退出

另一种方法是将以下内容添加到批处理文件的顶部

@echo off
tasklist /FI "WINDOWTITLE eq my_job_run" | findstr /i "cmd.exe"
if not errorlevel 1 exit
title my_job_run

这将检查名为
cmd.exe
的进程是否存在,窗口标题为
my_job\u run
如果存在,
exit
如果不存在,则继续并创建标题,下一次运行将检测该进程,并且不再运行脚本。

如果存在某个资源(例如文件),则退出批处理文件。否则,创建资源,完成工作,然后删除资源。您可能想考虑如果由于某种原因无法完成批处理会发生什么。@ IKGAMI,这是一种方式,<>代码> CMD的问题是,如果脚本意外退出,锁文件将保留,脚本将不会再次运行。虽然,正如Compo所提到的,这可能是“其中一种”场景,并且有更好的方法,但一种有效的方法是
tasklist/FI“WINDOWTITLE eq my_job_run”| findstr/i“cmd.exe”
然后
如果不是错误级别1退出
然后
title my_job_运行
,如果脚本结束,没有标题为的
cmd
进程,可以执行下一个作业。