1

我过去使用过 Wait-Process,它工作正常。这次我试图优雅地关闭视觉工作室(留出时间保存任何未保存的文件),一旦完成,便可以打开记事本。

(Get-Process devenv).CloseMainWindow() | 等待进程 | 记事本

不幸的是,虽然 Visual Studio 确实正常关闭,但记事本与保存文件对话框同时弹出。为什么在这种情况下 Wait-Process 不能按规范工作。伴随着一个powershell错误,我目前无法理解。

Wait-Process :输入对象不能绑定到命令的任何参数,因为命令不接受管道输入,或者输入及其属性与接受管道输入的任何参数都不匹配。在 line:1 char:54 (Get-Process devenv).CloseMainWindow() | 等待进程 <<<<

但是我做了很多DoSomethingA | 等待进程 | DoSomethingB 命令有效。我无法在这里弄清楚不同的情况。

4

2 回答 2

2

试试这样:

Get-Process devenv | % {$_.CloseMainWindow()}; wait-process devenv -ea silentlycontinue ; notepad
于 2012-09-19T13:23:38.377 回答
2

CloseMainWindow 返回一个布尔值,该值通过管道传递给 Wait-Process,但 Wait-Process 需要一个进程对象而不是布尔值。试试这个

Get-Process devenv | ForEach-Object {
    $null=$_.CloseMainWindow()
    Wait-Process -Id $_.id
    notepad
}
于 2012-09-19T10:48:07.680 回答