0

对于应该与 powerShell 2 兼容的脚本,我有一个名为 $exeLoc 的参数,声明如下: Param( [parameter()] [alias("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)上无法正常工作

有任何想法吗 ?

4

1 回答 1

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)上尝试上述操作,它会正确设置变量。也许我理解错了你的剧本?

于 2013-10-21T07:09:15.630 回答