对于应该与powerShell 2兼容的脚本,我有一个名为$ exeLoc的参数,声明如下: 参数( [参数()] [别名( “EL”)] $ exeLoc ='...... \ sw')
我尝试在函数中设置相对于绝对的参数,如下所示:
Function FromRelToAbs()
{
Push-Location $exeLoc
$Global:exeLoc = (Join-path $PWD -ChildPath '\Vis.exe' )
Pop-Location
}
但是,在调用上面的函数后,$ exeLoc的值不会改变。
上面的代码完全适用于powersell v3和powershell v2 ISE。它在powershell v2窗口(不是ISE)上无法正常工作
有什么想法吗?
答案 0 :(得分:0)
我认为你的脚本是这样的:
param($x = 2)
write-output "[script] Value of x is 2"
function blah {
$global:x = 5
write-output "[blah] Setting x as 5"
}
Write-Output "Calling function blah"
blah
Write-Output "[script] Value of x is $x"
您在脚本中设置变量;并且在脚本中是一个函数,它引用全局范围中的变量并设置其值。
如果我在我的机器上尝试上述操作(PowerShell v2),它会正确设置变量。也许我理解你的剧本错了?