PowerShell:脚本无法设置参数

时间:2013-10-21 04:43:38

标签: powershell-v2.0

对于应该与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)上无法正常工作

有什么想法吗?

1 个答案:

答案 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),它会正确设置变量。也许我理解你的剧本错了?