2014-02-26 91 views
2

出于某种原因,我不能让这个批处理执行开放部,等待,然后在Windows XP或Windows 7。我只能打开或关闭,关闭部分在批处理中注释另一个,但由于某种原因,我如何写它只会打开。我怎样才能打开一个程序等待一段固定的时间,然后关闭那个程序?这样做的原因是在计算机启动时强制制造商程序的驱动程序。任何帮助将非常感激。谢谢。批处理文件等待5秒然后关闭该程序

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

尝试'TIMEOUT/T 5'代替'设置_delay = 5' – Ryan

+0

我试图代替集_delay和我TIMEOUT得到:”‘超时’不被识别为一个内部或外部的命令,可操作的程序或批处理文件“。 – cheapkid1

+0

您正在运行XP吗? – Ryan

回答

1

代替Set _Delay=5,使用下列:

ping 1.1.1.1 -n 1 -w 5000 > nul

将ping 1.1.1.1一次(-n 1),并等待5秒的响应(-w 5000

随着该值被输出到nul除了等待5秒之外,它不会影响您的程序。

+0

由于某种原因,只有在手动关闭程序但保持批处理cmd提示窗口打开后才能启动ping,然后启动ping。所以它就像打开程序命令后卡住了一样。 – cheapkid1

+0

直到“C:\ Program Files \ WinTV \ WinTV2K.EXE”-nc行关闭或停止后,才会继续执行下一个命令行。我尝试打开程序的手动实例并重新运行批处理,然后手动关闭“批处理打开的程序”,并关闭手动运行的程序,因为我怀疑。 – cheapkid1

+0

有没有想法?..... – cheapkid1

2

你可以参考this进一步的信息,但我最喜欢的是ping一个不存在的机器一段时间:

ping 192.0.2.2 -n 1 -w 10000 > nul 

更改10000你需要什么(它以毫秒为单位)。

3

谢谢你们的帮助与等待坪,这是定时器一个伟大的修复,但我能得到一批工作的唯一办法是到批处理文件放在程序目录内,像这样运行它:

@ECHO off 
start WinTV2K.EXE -nc 
ping 1.1.1.1 -n 1 -w 5000 > nul 
Taskkill /IM WinTV2K.EXE /F 
Exit 

不知道为什么它不会以另一种方式工作,它不完全是我想要的,但它会这样做。感谢你的帮助。 @Ryan和@Sean龙

+0

在不使用开始呼叫的情况下,在新窗口中打开程序吗?如果不是,那么该批次将不得不等待该程序完成,然后才能开始任何新任务。 –

+0

它打开一个cmd窗口,但不会运行下一行,直到在“”中调用的程序被手动关闭。 – cheapkid1

2

而不是

Set _Delay=5 

使用本

ping -n 6 localhost >nul 

ping命令要求6给你5秒的近似延迟。

1

这将打开您的程序等待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 
相关问题