2017-01-06 28 views
1

我有以下代碼,它應該允許用戶爲特定文件選擇一個文件夾位置,然後我將使用該位置對該文件執行操作。但是,當我在ISE之外運行腳本時,FolderBrowserDialog根本不出現。我已經看過PowerShell窗口和所有其他窗口後面,它永遠不會出現。FolderBrowserDialog在ISE外運行時根本不會出現

Add-Type -AssemblyName System.Windows.Forms 
$FolderBrowser = New-Object System.Windows.Forms.FolderBrowserDialog 
$FolderBrowser.Description = "Description" 
$FolderBrowser.ShowNewFolderButton = $false 
$FolderBrowser.RootFolder = 'MyDocuments' 
if($FolderBrowser.ShowDialog() -eq $true){ 
    Do some stuff 
} 

有關它爲什麼不顯示的想法?是否需要打開某些PowerShell設置才能讓控制檯顯示某些內容?

+0

無法重現。 「ISE之外」究竟是什麼意思? –

+0

在ISE中,出現對話框,但只需打開PowerShell控制檯即可運行該腳本,但不顯示 – Sam

+0

您是否在使用PowerShell v2? '$ PSVersionTable.PSVersion' – sodawillow

回答

3

我以前在PS v2中有過這個問題,這裏是我修復它的方法。

保存在一個名爲.ps1文件中的代碼並運行它像這樣:

powershell -STA -File "path/to/file.ps1" 

ISE V2在STA運行,控制檯V2在MTA運行。

更多信息:Could you explain STA and MTA?

+0

就是這樣。我在PS v2上 – Sam

相關問題