CMD脚本启动Outlook后无法继续执行的问题及相关疑问
CMD脚本启动Outlook后无法继续执行的问题及相关疑问
我写了一个CMD脚本,想实现双击就能一次性打开多个常用程序,脚本内容如下:
:: Open Logbook code "\\wsl$\path\to\the\logbook" | exit 0 :: Open Firefox "C:\Program Files (x86)\Mozilla Firefox\firefox.exe" ^ "https://site1.com/", ^ "https://site2", ^ "..." :: Open console "C:\Program Files\cmder\Cmder.exe" :: Open Teams "C:\Users\62000670\AppData\Local\Microsoft\Teams\Update.exe" --processStart "Teams.exe" :: Open Outlook "C:\Program Files\Microsoft Office\root\Office16\OUTLOOK.EXE" echo "All done!" exit 0
但我发现一个问题:只有启动Outlook的命令不会释放命令行提示符,导致脚本没办法继续执行后面的echo "All done!"和exit 0,终端窗口也会一直保持打开状态——所以现在只能把Outlook的命令放在脚本最后。
我已经尝试过的方法
- 尝试通过管道或条件判断强制释放提示符:
"C:\Program Files\Microsoft Office\root\Office16\OUTLOOK.EXE" | exit 0
结果还是一样卡住脚本。"C:\Program Files\Microsoft Office\root\Office16\OUTLOOK.EXE" && echo "Give it back Outlook!" - 尝试使用Outlook的启动参数:
"/recycle":问题依旧;"/embeded":Outlook根本启动不起来,这也在意料之中。
完美可行的临时解决办法
后来用start命令解决了这个问题,命令如下:
start "Some Title" "C:\Program Files\Microsoft Office\root\Office16\OUTLOOK.EXE"
这里要注意:如果启动程序的路径不需要用引号包裹,那"Some Title"这个标题参数可以省略,但因为Outlook的安装路径里有空格,必须加引号,所以就得带上这个标题参数(随便写个字符串就行)。
还有两个小疑问想请教
- 有没有办法不用
start这种外部命令,就能让脚本在启动Outlook后继续执行? - 为什么偏偏Outlook这个命令和脚本里其他程序的命令不一样,会卡住脚本的执行流程?
备注:内容来源于stack exchange,提问作者SbiN
相关产品推荐
相关产品推荐

