点击浏览按钮

时间:2016-05-31 19:24:31

标签: powershell

基本上我想做的是有一个浏览按钮,打开一个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})当单击时打开对话框窗口,但我不知道如何将文件名(在对话框窗口中选择的文件)输出到其中自己的变量。我觉得我很亲近,但我只需要一点方向,我们将非常感谢任何帮助。

2 个答案:

答案 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
}