Invoke-Expression in foreach


$test1 = {Get-Process}
$test2 = {Get-Process}
$test3 = {Get-Process}

我想在 foreach 中自动执行调用命令。

我尝试了以下方法,但不起作用:

1..3 | %{& ($("`$test$_"))}
1..3 | %{Invoke-Command "`$test$_"}

感谢您的帮助

这有点不整洁,因为您需要先运行一个invoke-expression(iex(来计算变量:

 1..3 | % { invoke-command $(iex "`$test$_") }

我建议将命令直接放入数组中并对其进行迭代:

$cmds = @({Get-Process},{Get-Process},{Get-Process})
$cmds | % { Invoke-Command $_ }

使用 Get-Variable 会更干净:

$test1 = {Get-Process}
$test2 = {Get-Process}
$test3 = {Get-Process}
1..3 | foreach { .(Get-Variable test$_).value}

最新更新