之前我发布了这个,但当时看起来它正在工作,但我现在看到它不是。
我正在尝试检查某些进程是否正在运行,如果没有,它应该启动该进程的新实例。该过程是必须运行的.NET程序。
@echo off
tasklist /FI "IMAGENAME eq GEIndexParser.exe" | find /I "GEIndexParser.exe">
nul &&(
echo PROCESS GEIndexParser.exe IS ALREADY RUNNING!
)||(
echo GEIndexParser.exe IS NOT RUNNING! STARTING THE NEW PROCESS!
cmd /c start "ETPARSER" "C:\Users\me\Documents\
Visual Studio 2010\Projects\Projects2013\
GEIndexParser\bin\Debug\GEIndexParser.exe"
)
有人能看出这有什么问题吗?
顺便说一句,我试图在Windows Server 2008计算机上运行它,它确实在我在计划任务中设置作业时运行,但是没有看到现有进程正在运行并仍然执行它。这导致大量的进程实例运行。
感谢关于语法的评论建议我稍微改了一下
tasklist /FI "IMAGENAME eq GEIndexParser.exe" | find /I "GEIndexParser.exe">nul &&(
echo PROCESS GEIndexParser.exe IS ALREADY RUNNING!)
pause
||
(
echo GEIndexParser.exe IS NOT RUNNING! STARTING THE NEW PROCESS!
cmd /c start "ETPARSER" "C:\Users\me\Documents\
Visual Studio2010\Projects\Projects2013\GEIndexParser\bin\Debug\GEIndexParser.exe"
)
现在似乎正在运作。
答案 0 :(得分:0)
所以最终的代码是:
@echo off
tasklist /FI "IMAGENAME eq GEIndexParser.exe" | find /I "GEIndexParser.exe">nul &&(
echo PROCESS GEIndexParser.exe IS ALREADY RUNNING!
)||(
echo GEIndexParser.exe IS NOT RUNNING! STARTING THE NEW PROCESS!
cmd /c start "ETPARSER" "C:\Users\me\Documents\Visual Studio2010\Projects\Projects2013\GEIndexParser\bin\Debug\GEIndexParser.exe"
)