我的功能仅适用于某些场景。
为什么?
具有该功能及其调用的脚本是:
Function Get-SaveFileTxt($initialDirectory)
{
[System.Reflection.Assembly]::LoadWithPartialName("System.windows.forms") |
Out-Null
$SaveFileDialog = New-Object System.Windows.Forms.SaveFileDialog
$SaveFileDialog.initialDirectory = $initialDirectory
$SaveFileDialog.AddExtension = $true
$SaveFileDialog.DefaultExt = "txt"
$SaveFileDialog.filter = "Text Files (*.txt)| *.txt"
$SaveFileDialog.ShowDialog() | Out-Null
$SaveFileDialog.filename
}
Get-SaveFileTxt
答案 0 :(得分:1)
不确定这是否是这种情况,但我记得一个错误,打开的对话框没有关注并出现在其他打开的窗口后面。你能证实吗?
更新:
将ShowHelp属性设置为$ true。
$SaveFileDialog.ShowHelp = $true
它适用于ISE,因为ISE的公寓状态默认为STA,而你的PowerShell模式是MTA,你可以查看:
[System.Threading.Thread]::CurrentThread.ApartmentState
如果在STA模式下打开PowerShell,您的代码将起作用:
powershell.exe -STA