我有一个批处理脚本启动在cmd.exe中运行的程序我已经尝试使用任务计划程序来创build一个任务,停止此cmdshell,并启动一个新的每小时无济于事。 是否有其他方法每小时停止和启动相同的cmd和批处理脚本?
我试着用以下方法制作另一批:
Taskkill /IM cmd.exe
并计划每小时运行一次,但由于此批处理也在cmd shell中运行,因此只会自行杀死,而不是以前运行的cmd shell。
任何帮助实现每x间隔停止和重新启动相同的cmd shell将不胜感激。
问候
less林
编辑:
我希望每x次重新启动一次这个程序的原因是因为这个特定的程序往往会挂起,它可能会在10分钟或10个小时后挂起。 作为一项预防措施,我希望每小时重新启动一次。
这是一个有点不清楚你想要达到什么,为什么,但我认为批处理脚本是工作的错误工具(尤其是在2013年)。
Powershell将给你更可预测的结果,并让你提供更好的可靠性,例如:
$application = "C:\Windows\System32\notepad.exe" $sleepTime = 10 $i = 1 while ($i = 1){ Write-Host "Starting Process" $process = Start-Process $application -PassThru Write-Host "Waiting " $sleepTime "seconds" Start-Sleep -Seconds $sleepTime if(!$process.HasExited){ Write-Host "Killing Process" $process.Kill() }else{ echo "Process had already ended" } Start-Sleep -Seconds 2 }
虽然我很确定,要比使用无限循环有更好的答案。
这听起来更像是一个逻辑问题。 在批处理脚本中,您可以键入exit以closures逻辑中的cmd窗口。 否则,你可以看看在PowerShell中使用stop-process和start-process。 我想说我们需要更多的信息“为什么”你每个小时都需要一个新的cmd窗口。
你应该可以添加一个/ IF“CPUTIME gt 00:30:00”
taskkill /IM cmd.exe /IF "CPUTIME gt 00:29:00"