1

当 excel.exe 进程已经存在时,Start-Process -Wait 将不起作用。当没有 excel.exe 实例正在运行时,cmdlet 可以正常工作。但是如果有一个实例已经在运行,它会抛出一个错误。我已经进行了一些故障排除,问题似乎是启动的进程“嵌套”到现有进程中。您会看到新的 excel.exe 将以单独的 PID 开始,但 1-2 秒后,此 PID 消失,新实例被封装到调用 cmdlet 之前运行的 excel.exe 实例的现有 PID 中。

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

谢谢!

4

1 回答 1

2

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

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

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

这应该会导致您现在看到该过程的多个实例。 在此处输入图像描述

编辑

如果你想打开一个文件,只需这样调用它,你不应该得到一个错误:

Start-Process excel.exe -wait -ArgumentList "C:\temp\testxlsx.xlsx /x"
于 2016-05-24T02:22:31.100 回答