如何让 PowerShell 等到 Invoke-Item 调用完成?我正在调用一个不可执行的项目,所以我需要使用 Invoke-Item 来打开它。
问问题
41100 次
4 回答
25
只是使用Start-Process -wait
,例如 Start-Process -wait c:\image.jpg
。这应该与@JaredPar 的工作方式相同。
于 2010-04-23T18:14:28.950 回答
19
通过管道将您的命令传递给 Out-Null。
于 2010-04-24T20:44:56.493 回答
8
不幸的是,您不能Invoke-Item
直接使用 Commandlet。这个命令 let 有一个 void 返回类型并且没有允许等待的选项。
最好的选择是定义你自己的函数来包装Process
API 像这样
function Invoke-Command() {
param ( [string]$program = $(throw "Please specify a program" ),
[string]$argumentString = "",
[switch]$waitForExit )
$psi = new-object "Diagnostics.ProcessStartInfo"
$psi.FileName = $program
$psi.Arguments = $argumentString
$proc = [Diagnostics.Process]::Start($psi)
if ( $waitForExit ) {
$proc.WaitForExit();
}
}
于 2010-04-23T17:31:42.833 回答
2
一种简单的方法
$session = New-PSSession -ComputerName "xxxxx" -Name "mySession"
$Job = Invoke-Command -Session $session -FilePath "xxxxx" -AsJob
Wait-Job -Job $Job
于 2016-10-14T15:41:57.120 回答