Powershell和Excel - 如果excel.exe已在运行,则启动进程-Wait抛出错误

时间:2016-05-24 01:28:35

标签: powershell start-process

启动 - 处理 - 当excel.exe进程已存在时,等待工作失败。当没有运行excel.exe实例时,cmdlet工作正常。但是如果有一个实例已经运行它会抛出一个错误。我已经做了一些故障排除,问题似乎是启动过程'嵌套'本身就是现有的。您将看到新的excel.exe将以单独的PID启动,但在1-2秒后,此PID消失,新实例将被封装到正在运行的excel.exe实例的现有PID中,然后调用小命令。

任何人都对这种行为有正确的解释吗?
任何人都有解决方法吗?
欢迎所有信息!

谢谢!

1 个答案:

答案 0 :(得分:1)

这是2013年之后大多数Office程序的预期行为(我认为)。微软决定停止让Excel,Word和PowerPoint(至少)默认启动一个额外的过程,因为我永远不会知道各种原因。

您的解决方法是传入一个告诉Excel打开新实例的参数。

Start-Process Excel.exe -ArgumentList "/x" -Wait

这会导致您现在看到该过程的多个异常。 enter image description here

修改

如果您想打开文件,请按照这种方式调用,但不应该出错:

Start-Process excel.exe -wait -ArgumentList "C:\temp\testxlsx.xlsx /x"