在 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