在運行PowerShell腳本的時候,某些重要信息可能會需要通過彈出窗口的方式提示用戶。PowerShell中沒有現成的對象供我們調用,所以就需要先新建一個名為“WScript.Shell”的對象,然后再通過其所包含的方法彈出窗口。
WScript.Shell對象可以執行操作系統外殼常用的操作,比如運行程序、讀寫注冊表、環境變量等。以前經常被用在VBS腳本編程中,在PowerShell中同樣也可以使用。
使用“New-Object”命令新建一個COM對象實例,如下:
$ws = New-Object -ComObject WScript.Shell
接着再運行 $ws |Get-Member,查看該對象所包含的屬性或方法,如下:
通過調用“Popup”方法,可以彈出一個包含指定消息的消息窗口。此方法所包含的參數含義解釋如下:
object.Popup(strText,[nSecondsToWait],[strTitle],[nType])
Ø strText :消息窗口所包含的文本信息;
Ø nSecondsToWait:等待n秒后該窗口自動關閉,如設置為0,則永不會自動關閉;
Ø strTitle:消息窗口的標題;
Ø nType:消息窗口的按鈕類型及其圖標
按鈕類型:
值 |
描述 |
0 |
顯示“確定”按鈕 |
1 |
顯示“確定”+“取消”按鈕 |
2 |
顯示“終止”+“重試”+“忽略”按鈕 |
3 |
顯示“是”+“否”+“取消”按鈕 |
4 |
顯示“是”+“否”按鈕 |
5 |
顯示“重試”+“取消”按鈕 |
6 |
顯示“重試”+“取消”+“繼續”按鈕 |
圖標類型:
值 |
描述 |
16 |
![]() |
32 |
![]() |
48 |
![]() |
64 |
![]() |
舉例,運行如下代碼:
$ws = New-Object -ComObject WScript.Shell $wsr = $ws.popup("你好嗎?",5,"我的窗口",1 + 64) #如果單擊”確定“按鈕,則$wsr返回值為1,單擊”取消“按鈕返回值為2 |
彈出如下窗口,該窗口5秒鍾后會自動關閉:
如果不指定按鈕類型及其圖標的話,則顯示如下:
其他的按鈕類型大家可以自己根據實際需要去使用,在此就不再一一舉例了。