我有一个批处理文件来运行一个应用程序(我曾经在80年代写过DOS中的一些基本代码),我需要它每隔x小时“重新执行”一次应用程序。我找不到的是如何在再次运行代码之前“关闭”(或停止)应用程序,因此它不会在每个循环中打开几个cmd.exe窗口。我是编码的总菜鸟,但我知道批处理文件的原理
我的实际.bat看起来像这样
setx some-minor-adjustments
application.exe -couple-of-variables
然后,它打开通常的cmd.exe窗口,并永远运行应用程序。我需要做的是,不知何故,每隔x小时自动“刷新”(关闭并重新执行)应用程序。
关闭cmd.exe窗口就可以关闭应用程序了,在这个意义上就不需要了(比如要保存的数据)
一位朋友建议使用cron
命令,但似乎是出于其他目的。我还通过Internet发现我应该使用start
命令在新的cmd.exe窗口中打开应用程序,或类似的东西
有什么想法吗?提前谢谢!
答案 0 :(得分:1)
在Windows上,使用任务计划程序而不是CRON。
任务计划程序中的任务可以设置为在设定的时间后关闭,如果您可以确定最长持续时间。
如果可以假定主命令完成(或生成单独的进程),您还可以在主命令后添加exit
命令。
答案 1 :(得分:0)
:BEGIN
start /b mspaint
ping -n 6 localhost
tskill mspaint
GOTO BEGIN
这适用于所有版本的Windows。请记住,您必须将数字6更改为您想要的延迟秒数加上一个,即上述ping
语句将产生5秒的延迟。同样,要产生1小时的延迟,你必须写
ping -n 3601 localhost
还要确保批处理文件与可执行文件位于同一文件夹中,否则您必须指定完整路径。
注意:您可以在mspaint.exe
命令中使用start
,但对于tskill
命令,参数应仅为mspaint
(无扩展名) )。在这种情况下,@echo off
使用ping
会有很大帮助,因为-n
请求会被回显,并且无法关闭。您可以使用批处理到exe转换器并创建静默无窗口可执行文件。 ping
的{{1}}参数可能非常大,但必须在几秒钟内完成。