【发布时间】:2019-07-11 16:31:01
【问题描述】:
我在comment on another post 中获悉:
至于
Invoke-Command:不幸的是,文档不正确:by 默认情况下,本地调用发生在子范围内,但您可以选择 与-NoNewScope进行相同范围的执行。 – mklement0
但是,根据help documentation(强调添加):
您还可以在本地计算机上使用 Invoke-Command 来评估或运行 脚本块中的字符串作为命令。 Windows PowerShell 转换 脚本块到一个命令并立即运行该命令在 当前作用域,而不仅仅是在命令行中回显字符串。
这似乎按预期工作:
PS C:\> $TestVar = 99
PS C:\> Invoke-Command { Get-Variable TestVar }
Name Value
---- -----
TestVar 99
如果文档有误,我预计这会导致 Invoke-Command 无法使用该变量。文档到底是正确的吗?
【问题讨论】:
-
这样看。第二个 $a 不变:
invoke-command { $a = 1 } ; $a -
@js2010 我喜欢这样。这是显示问题的一种非常简洁的方式。
标签: powershell scope