在 PowerShell 中显示消息框

Marion Paul Kenneth Mendoza 2023年1月30日 2022年5月16日
  1. PowerShell GUI 简介
  2. PowerShell 中的 MessageBox
在 PowerShell 中显示消息框

有些人认为 PowerShell 是一种命令行语言。他们认为 PowerShell 可以将文本输出到沉闷的控制台屏幕。

但是,Windows PowerShell 构建在 .NET 框架之上。因此,它可以为你的脚本使用图形用户界面 (GUI)。

本文将讨论名为 Message Boxes 的 PowerShell GUI 的重要功能,我们将学习如何使用 PowerShell 编写和输出它们。

PowerShell GUI 简介

有几种方法可以将我们的脚本转换为 GUI 形式。如果我们需要创建简单的 GUI 工具以在 Windows PowerShell 中与用户交互,我们可能会选择 Windows 窗体 (WinForms) 或 Windows Presentation Foundation (WPF)。

但是,有时我们不需要构建功能齐全的 GUI 工具。

例如,当我们只想向用户显示一条消息以获取一般信息或获得一些简单的输入时,我们不想弄清楚如何制作表单并在表单上放置控件。

在这种情况下,还有另一种更直接的方法,只需要一行代码; [System.Windows.MessageBox]

PowerShell 中的 MessageBox

System.Windows 命名空间中的 MessageBox 类有许多选项,允许我们向用户显示一些带有 OK 按钮的文本以要求输入,并为他们提供诸如 YesNoCancel

首先,默认情况下,Windows PowerShell 中不存在此命名空间。因此,要使用它,我们需要将程序集添加到我们的 Windows PowerShell 会话中。

我们将通过使用 Add-Type cmdlet 添加 PresentationFramework 程序集来完成此操作。

Add-Type -AssemblyName PresentationFramework

添加后,我们现在可以使用 MessageBox 类。

MessageBox 类有一个名为 Show 的主要方法。这个方法允许我们传递不同的参数给它以不同的行为。

例如,你可以使用 Show() 方法以最简单的形式显示简单的消息。

[System.Windows.MessageBox]::Show('Hello')

当消息框出现时,我们会注意到它会停止你的控制台输入,直到它关闭。当我们点击 OK 时,控制台将显示 Show() 方法返回的内容,在这种情况下,它是简单的'OK'

Show() 方法有许多构造函数来自定义消息框标题、显示按钮的类型等。让我们来看一个示例。

首先,我们将添加一个标题和图标,我们将添加取消按钮来获取用户的输入。

我们将向 Show() 方法添加一些参数。

[System.Windows.MessageBox]::Show('Do you want to proceed?', 'Confirm', 'YesNoCancel','Error')

我们可以看到,只要将要显示的消息、消息框的标题、按钮组和要显示的图标类型按照正确的参数顺序放置,就可以提供不同类型的消息框。

然后,根据我们按下的按钮,它将返回一个单独的输出,然后我们可以使用它来决定脚本的未来流程。

$msgBoxInput =  [System.Windows.MessageBox]::Show('Would you like to proceed?', 'Confirmation', 'YesNoCancel','Error')

switch  ($msgBoxInput) {

    'Yes' {
    	## Action Here
    }
    'No' {
    	## Action Here
    }
    'Cancel' {
    	## Action Here
    }

}
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn