我是Powershell的新人。
有些东西让我惊讶PS的工作方式,特别是它如何保留变量。
示例:
[string]$a=""
$a = "world"
$b = "Hello $a"
write-host $b
$a = "world2"
write-host $b
以下是结果:
Hello world
Hello world
为什么第二个写主机不显示“Hello world2”?
答案 0 :(得分:1)
只是因为当您撰写$b = "Hello $a"
时,$a
的值已用完,新字符串为Hello world
。
答案 1 :(得分:0)
与JPBlanc一样,你的变量是重写的......
你可以这样做:
$a = "world"
Set-PSBreakpoint -Variable b -Mode Read -Action { $global:b = "Hello $a" }
write-host $b
$a = "world2"
write-host $b
或者只是使用一个函数:
function SayHello($who){
"Hello $who"
}
$a = "world"
SayHello($a)
$a = "world2"
SayHello($a)