Windows 打开程序的批处理文件等待5秒钟,然后关闭该程序

Windows 打开程序的批处理文件等待5秒钟,然后关闭该程序,windows,batch-file,Windows,Batch File,由于某些原因,我无法让此批处理在Windows XP或Windows 7中执行打开部分、等待部分和关闭部分。我只能通过注释批处理中的另一个来打开或关闭,但由于某种原因,我如何编写它只会打开。我如何打开一个程序等待一个固定的时间,然后关闭同一个程序?这样做的原因是在计算机启动时强制制造商程序的驱动程序。任何帮助都将不胜感激。谢谢 @ECHO off "C:\Program Files\WinTV\WinTV2K.EXE" -nc Set _Delay=5 Taskkill /IM "WinTV2K

由于某些原因,我无法让此批处理在Windows XP或Windows 7中执行打开部分、等待部分和关闭部分。我只能通过注释批处理中的另一个来打开或关闭,但由于某种原因,我如何编写它只会打开。我如何打开一个程序等待一个固定的时间,然后关闭同一个程序?这样做的原因是在计算机启动时强制制造商程序的驱动程序。任何帮助都将不胜感激。谢谢

@ECHO off
"C:\Program Files\WinTV\WinTV2K.EXE" -nc
Set _Delay=5
Taskkill /IM "WinTV2K.EXE" /F
Exit

使用以下命令,而不是
设置_Delay=5

ping 1.1.1.1-n1-w5000>nul

将ping
1.1.1.1
一次(
-n1
),并等待5秒钟以获得响应(
-w 5000

由于该值被输出到
nul
中,它不会影响您的程序,只会等待5秒。

您可以参考以获取更多信息,但我最喜欢的是在一段时间内ping一台不存在的机器:

ping 192.0.2.2 -n 1 -w 10000 > nul

更改10000以满足您的需要(以毫秒为单位)。

感谢大家对等待ping的帮助,这是对计时器的一个很好的修复,但是我可以让批处理工作的唯一方法是将批处理文件放在程序目录中,并按如下方式运行:

@ECHO off
start WinTV2K.EXE -nc
ping 1.1.1.1 -n 1 -w 5000 > nul
Taskkill /IM WinTV2K.EXE /F
Exit
我不知道为什么它不能以另一种方式工作,这也不是我想要的,但它可以做到。谢谢你的帮助@Ryan和@Sean Long

而不是

Set _Delay=5
用这个

ping -n 6 localhost >nul

ping命令需要6秒来给您大约5秒的延迟。

这将打开您的程序等待5秒,然后关闭同一程序 Windows XP-10“批处理文件”或“Windows命令脚本”超时!没有平

@ECHO off
start WinTV2K.EXE -nc
ver | find "XP" > nul
     if %ERRORLEVEL% == 1 timeout /t 05 && echo . Vista - 10 && goto NEXT

set XP-timeout=5000
echo . XP, 1000 = 1 sec, approximately

set /a timeout=1
     :timer
echo timeout timer number %timeout%
if %timeout% == %XP-timeout% goto NEXT
echo . XP, 1000 = 1 sec.
set /a timeout=timeout+1
goto timer
     :NEXT
tasklist /fi "imagename eq WinTV2K.EXE" |find ":" > nul
 if errorlevel 1 taskkill /f /im "WinTV2K.EXE"
Exit

尝试
TIMEOUT/t5
而不是
Set\u Delay=5
我尝试了TIMEOUT而不是Set\u Delay,结果得到:“‘TIMEOUT’未被识别为内部或外部命令、可操作程序或批处理文件。”出于某种原因,ping直到我手动关闭程序,但保持批处理命令提示符窗口打开时才会启动,然后,ping开始。因此,它就像在打开程序命令后被卡住一样。它不会继续到下一个命令行,直到“C:\program Files\WinTV\WinTV2K.EXE”-nc行关闭或中断。我尝试打开该程序的手动实例并重新运行批处理,然后手动关闭“批处理打开的程序”,它按照我的怀疑关闭了手动运行的程序。它是否在新窗口中打开程序而不使用start调用?如果没有,则批处理将不得不等待程序完成,然后才能继续执行任何新任务。它正在打开一个cmd窗口,但在手动关闭调用“”的程序之前不会运行下一行。