2013-06-05 19 views
3

我正在爲應用程序在工作中製作PowerShell安裝腳本,並且我經常從PowerShell ISE切換到PowerGUI來實現它。Powershell ISE和PowerGUI for [環境+特殊文件夾]之間的區別

我發現他們之間的差異,我真的無法解釋,我想有一些建議。

對於同下面的代碼:

$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文件(86)是一個現有的文件夾。

我很好奇,明白爲什麼。 謝謝。

回答

2

您的環境沒有播放相同版本的PowerShell,或者至少與CLR版本相同。試着看看$PSVersionTable

Environment.SpecialFolder enum在.NET Framework 4.5中包含ProgramFilesX86但在.NET Framework 3.5和以前的版本中並非如此。

+0

非常感謝這篇技巧。 –

+0

+1美味的CLR塊/瑣事。 – x0n

相關問題