如果进程未运行,则启动Windows命令行

时间:2014-12-04 21:24:12

标签: windows batch-file command-line scheduled-tasks

如果应用程序(特别是Outlook.exe)尚未运行,我想自动启动它。我想通过Windows 7任务调度程序执行此操作,这意味着当我尝试通过用&替换换行符在一行上执行它时解决方案here不起作用。无论是运行还是关闭,它都会启动前景。

tasklist /FI "IMAGENAME eq outlook.exe" 2>NUL | find /I /N "outlook.exe">NUL & if "%ERRORLEVEL%"=="0" "C:\Program Files (x86)\Microsoft Office\Office14\OUTLOOK.EXE"

2 个答案:

答案 0 :(得分:3)

只需进行快速修复,以便在成功打开文件后退出批处理。

我添加了开始“”

cmd.exe /c tasklist /FI "IMAGENAME eq outlook.exe" | find /I /N "outlook.exe" ||start "" "C:\Program Files (x86)\Microsoft Office\Office14\OUTLOOK.EXE"

答案 1 :(得分:0)

我找到this,其中第二个答案更详细地介绍了&和|选项。

这最终适合我:cmd.exe /c tasklist /FI "IMAGENAME eq outlook.exe" | find /I /N "outlook.exe" || "C:\Program Files (x86)\Microsoft Office\Office14\OUTLOOK.EXE"

更多细节: || [...] command1 ||命令2 用于在||后面运行命令仅当前面的命令是||失败即可。 Cmd.exe运行第一个命令,然后仅在第一个命令未成功完成时才运行第二个命令(收到大于零的错误代码)。