Powershell ISE和PowerGUI之间的区别[环境+ SpecialFolder]

时间:2013-06-05 08:40:43

标签: powershell powergui

我正在为应用程序制作一个PowerShell安装脚本,我不断从PowerShell ISE切换到PowerGUI来实现它。

我发现它们之间存在差异,我实在无法解释,我想提出一些建议。

对于以下相同的代码:

$test = ""
$feedback = $FALSE
try
{
    $test = [System.Environment]::GetFolderPath([Environment+SpecialFolder]::ProgramFilesX86)
}
catch
{
    $test = ""
}
if($test -eq "")
{
    $feedback = $TRUE
}
else
{
    $feedback = $FALSE
}
"Feedback : " + $feedback
"Result : " + $test

Powershell ISE回归:

Feedback : True
Result : 

PowerGUI返回:

Feedback : False
Result : C:\Program Files (x86)

当然,C:\ Program Files(x86)是一个现有的文件夹。

我很想知道为什么。 感谢。

1 个答案:

答案 0 :(得分:2)

您的环境未播放相同版本的PowerShell,或至少与CLR版本相同。试着看$PSVersionTable

Environment.SpecialFolder枚举在.NET Framework 4.5中包含ProgramFilesX86,而在.NET Framework 3.5及以前的版本中并非如此。