我正在为应用程序制作一个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)是一个现有的文件夹。
我很想知道为什么。 感谢。
答案 0 :(得分:2)
您的环境未播放相同版本的PowerShell,或至少与CLR版本相同。试着看$PSVersionTable
。
Environment.SpecialFolder枚举在.NET Framework 4.5中包含ProgramFilesX86
,而在.NET Framework 3.5及以前的版本中并非如此。