解释我的需求有些棘手,但是请看下面的简化代码示例以了解它,在非常特殊的情况下,需要这种方法以64位模式执行脚本:
$x=0
$command = {
$a=1
$b=2
$x=$a
$r=$a+$b
}
$Result = C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe -Command $command
write-host($x)
此$ command执行的最终结果为3,但我还需要传递$ x值,即$ command中的值,在当前示例中,最后是$ x = 0。
我的问题是,是否有可能传递在命令变量中赋值的变量值?在上面的示例中,是否可以传递$ a和$ b变量值?
答案 0 :(得分:0)
我不确定为什么要在PowerShell中调用PowerShell,但是:
PS> $command = {
$a=1
$b=2
Return $a+$b
}
$x = & $command
$x
3
您可以使用调用(&)运算符执行命令变量并获得结果。
HTH
答案 1 :(得分:0)
不确定X = 0和写主机与在另一个进程中运行命令并从中检索结果有关。您的命令脚本块不会在当前状态下创建任何输出,因此不会捕获任何内容到$Result
似乎您打算用$a
和$b
进行计算,但是然后说您想将这些值传递出去。您是否要在内部进行计算,然后仅输出其原始数据?您可以简单地输出一个哈希表或pscustomobject,然后像这样使用输出。
$command = {
$a=1
$b=2
$x=$a
$r = $a + $b
@{A=$a;B=$b}
}
$Result = C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe -Command $command
$Result
Name Value
---- -----
A 1
B 2
$result.a
1