1
我有一個自己調用的腳本。我需要一個腳本在它所處的級別上維護一個變量。換句話說,當腳本「遞減」遞歸時,變量應該是它調用它時的情況。powershell遞歸變量作用域
看來,變量的範圍不允許那麼好。示例代碼(包含在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
通知了 「退出」 第一變量將如何顯示,當值它最初被稱爲。
或者直接調用腳本'\ test.ps1'。 – 2015-03-03 01:41:00
doh ...我正在解決一個不同的部分,並忘記我已經做到了。我知道這很簡單,我只是看不到它......謝謝你, – 2015-03-03 14:39:22