如何在PowerShell会话中访问powershell.exe命令的结果?

时间:2017-04-13 15:07:49

标签: powershell

我正在尝试使用此命令从CMD启动PowerShell。

powershell.exe -NoProfile -NoExit -command "& {$someVar = 'test'}"

如何在PowerShell中访问变量 someVar 。 MSDN说“脚本的结果作为反序列化的XML对象返回到父shell,而不是活动对象。” 。

1 个答案:

答案 0 :(得分:0)

& {$someVar = 'test'}"执行本地范围内的scriptblock,在执行scriptblock时删除该范围。

您需要在$global - 范围(会话范围)

中创建变量
CMD> powershell.exe -NoProfile -NoExit -command "& {$global:someVar = 'test'}"

PS> $someVar
test

或使用点源. <script/scriptblock>来执行脚本块,该脚本块运行当前范围内的所有内容(本例中为会话)

CMD> powershell.exe -NoProfile -NoExit -command ". {$someVar = 'test'}"

PS> $someVar
test

详细了解变量范围here