我有一个自称的脚本。我需要让脚本在它所处的级别维护一个变量。换句话说,因为剧本"起泡"对于递归,变量应该是它调用它时的变量。
似乎变量的范围不能很好地实现。示例代码(包含在test.ps1中):
param ($y)
set-variable -name temp -scope script -value $y
while ($continue -ne "n")
{
$temp = $temp + 1
$output = "Temp=" + $temp + " ::y=" + $y
write-host $output
$continue = read-host "Pause..."
. .\test.ps1 $temp
}
write-host "exiting $temp - $y"
输出:
> PS C:\Users\evanroy\Documents\SCripts> .\test.ps1 1
> Temp=2 ::y=1
> Pause...:
> Temp=3 ::y=2
> Pause...:
> Temp=4 ::y=3
> Pause...:
> Temp=5 ::y=4
> Pause...: n
> exiting 5 - 5
> exiting 5 - 5
> exiting 5 - 5
> exiting 5 - 5
> exiting 5 - 5
期望的输出:
>PS C:\Users\evanroy\Documents\SCripts> .\test.ps1 1
>Temp=2 ::y=1
>Pause...:
>Temp=3 ::y=2
>Pause...:
>Temp=4 ::y=3
>Pause...:
>Temp=5 ::y=4
>Pause...: n
>exiting 5 - 5
>exiting 4 - 5
>exiting 3 - 5
>exiting 2 - 5
>exiting 1 - 5
注意"退出"第一个变量会在最初调用时显示该值。
答案 0 :(得分:1)