基本上我想做的是有一个浏览按钮,打开一个openfiledialog窗口,允许我选择一个文件并将文件名保存到变量中,以便我可以在其他地方使用它。我有以下功能
Function Get-FileName($initialDirectory) {
[System.Reflection.Assembly]::LoadWithPartialName("System.windows.forms") | Out-Null
$OpenFileDialog = New-Object System.Windows.Forms.OpenFileDialog
$OpenFileDialog.initialDirectory = $initialDirectory
$OpenFileDialog.filter = "All files (*.*)| *.*"
$OpenFileDialog.ShowDialog() | Out-Null
$OpenFileDialog.FileName
} #end function Get-FileName
当单独运行时,将打开对话框窗口并将我选择的文件输出到控制台窗口。当我添加按钮事件以弹出打开对话框窗口时,我使用$button1.add_Click({Get-FileName})
当单击时打开对话框窗口,但我不知道如何将文件名(在对话框窗口中选择的文件)输出到其中自己的变量。我觉得我很亲近,但我只需要一点方向,我们将非常感谢任何帮助。
答案 0 :(得分:1)
您可以在调用函数的脚本块中分配变量吗?
$global:variable = $null
$button1.add_Click({$global:variable = Get-FileName})
答案 1 :(得分:0)
查看代码之后,您只需将filename属性声明为变量即可。试试这个,选择的文件名将存储在$SelectedFile
:
Function Get-FileName($initialDirectory)
{
Add-Type -AssemblyName System.Windows.Forms
$OpenFileDialog = New-Object System.Windows.Forms.OpenFileDialog
$OpenFileDialog.Title = "Please Select File"
$OpenFileDialog.InitialDirectory = $initialDirectory
$OpenFileDialog.filter = "All files (*.*)| *.*"
# Out-Null supresses the "OK" after selecting the file.
$OpenFileDialog.ShowDialog() | Out-Null
$Global:SelectedFile = $OpenFileDialog.FileName
}