Answers:
start yourprogram.exe
ping 127.0.0.1 -n 10
taskkill /im yourprogram.exe
如果将其放在记事本中并保存,.bat
它将创建一个批处理文件来执行此操作。
我以10秒为例,只是调整您的需求。
另外,如果您使用的是Vista或更高版本,则可以取消该ping
行,并timeout
在该位置使用更简单的命令
timeout /t 10
start yourprogram.exe yourarguments
。是的,它可以taskkill
选择按PID杀死,但是您必须tasklist
首先根据名称将其提取,如果您有多个实例,则将其从第一个平方中提取出来。这只是cmd的限制。
> NUL
到ping
命令以压缩其输出。
据我所知,似乎不存在这样的函数,但是我认为如果通过Task Scheduler使它作为Windows任务运行是可行的,从那里您可以设置执行限制,该设置名为:如果任务运行则停止任务超过:,您可以从此处获得更多详细信息:http : //technet.microsoft.com/zh-cn/library/cc722178.aspx
如果您不喜欢使用PowerShell:
$app = Start-Process -PassThru -FilePath 'notepad' -ArgumentList 'test.txt'
将以test.txt为参数启动记事本(您可以使用分隔多个参数,
。
Start-Sleep -Seconds 10
会睡10秒。
无论是$app.Kill()
或taskkill /PID $app.Id
将杀死启动的应用程序。
如果您希望仅调用PowerShell的cmd解决方案来启动该过程,然后将其PID存储在变量中:(
for /F %A in ('powershell -Command "(Start-Process -PassThru -FilePath 'notepad' -ArgumentList 'test.txt').Id"') do set PID=%A
从.bat / .cmd调用时,您必须使用%%A
而不是%A
)。然后,您可以使用@BaliC的超时方法并taskkill /PID %PID%
杀死启动的应用程序。
解决方案:
在Windows中,需要制作三个批处理文件
进程蝙蝠
@ECHO OFF
start /b cm.bat
start cmd.exe /c run.bat
EXIT
蝙蝠
@ECHO OFF
a.exe < input.txt > out.txt
taskkill /im a.exe /f
taskkill /im cmd.exe /f
EXIT
运行
@ECHO off
timeout /t 5
taskkill /im a.exe /f
taskkill /im cmd.exe /f
EXIT
现在运行process.bat。它将同时/并行启动cm.bat和run.bat。当cm.bat中的a.exe终止时;cm.bat杀死run.bat,因此它将作为ubuntu超时工作。