如何在 PowerShell 中按任意鍵繼續
-
使用
ReadKey (System.Console)
在 PowerShell 中啟用按任意鍵繼續
-
使用
ReadKey (Console)
在 PowerShell 中啟用按任意鍵繼續
-
使用
ReadKey (RawUI)
在 PowerShell 中啟用按任意鍵繼續
-
使用
Read-Host
在 PowerShell 中啟用按任意鍵繼續
-
使用
cmd /c 'pause'
命令在 PowerShell 中啟用按任意鍵繼續
-
使用
timeout
在 PowerShell 中啟用按任意鍵繼續
- 結論

在 PowerShell 腳本中,啟用 按任意鍵繼續
功能是常見的需求,特別是在創建互動式命令行應用程序或提供用戶反饋時。有多種方法可以實現這一功能,每種方法都有其自身的優勢和使用場景。
本文探討了實現在 PowerShell 腳本中 按任意鍵繼續
特性的各種方法,從內置的 cmdlet 到利用外部命令和 COM 對象。
使用 ReadKey (System.Console)
在 PowerShell 中啟用 按任意鍵繼續
PowerShell 中的 [System.Console]::ReadKey()
方法用於從標準輸入流(通常是鍵盤)讀取用戶按下的下一個鍵或功能鍵。當不帶任何參數調用時,這個方法會等待用戶按下鍵並返回一個類型為 [System.ConsoleKeyInfo]
的對象,該對象表示按下的鍵。
System.Console ReadKey
可以如下面所示執行。它接受除 Shift、Alt、Ctrl 及其他修飾鍵以外的任意鍵。
$keyInfo = [System.Console]::ReadKey($true)
Write-Host "Key Pressed: $($keyInfo.KeyChar)"
在代碼行 $keyInfo = [System.Console]::ReadKey($true)
中,我們利用 [System.Console]::ReadKey()
方法來捕獲用戶輸入。通過將 $true
作為參數傳遞,我們表示按下的鍵不應在控制台窗口中顯示。
這防止了控制台堆滿不必要的字符,提供了更清晰的用戶體驗。要顯示 $keyInfo
的輸出,我們可以使用點標記法來訪問其屬性。
輸出:
使用 ReadKey (Console)
在 PowerShell 中啟用 按任意鍵繼續
您可以使用 [Console]::ReadKey()
在 PowerShell 中啟用 按任意鍵繼續
。它可以在暫停執行的同時讀取鍵和修飾鍵。它不包括 Shift、Alt、Ctrl及其他修飾鍵。
$keyInfo = [Console]::ReadKey()
在代碼行 $keyInfo = [Console]::ReadKey()
中,我們利用 [Console]::ReadKey()
方法來捕獲用戶輸入。這個方法等待用戶按下鍵並返回一個表示按下的鍵的對象,並將其存儲在變量 $keyInfo
中。
輸出:
使用 ReadKey (RawUI)
在 PowerShell 中啟用 按任意鍵繼續
PowerShell 中的 $Host.UI.RawUI.ReadKey()
方法用於從控制台輸入中讀取用戶按下的下一個鍵或功能鍵。當調用時,這個方法會等待用戶按下鍵並返回一個表示按下的鍵的對象。
這個對象包含一些屬性,例如 Character
,表示按下的鍵的 Unicode 字符,以及 KeyDown
,指示鍵是否被按下。
這個方法與 [Console]::ReadKey()
類似。它接受任何鍵,包括 Ctrl、Shift、Alt 及其他修飾鍵。
有不同的 ReadKeyOptions
可以在 RawUI ReadKey
方法中傳遞,例如 IncludeKeyDown
、IncludeKeyUp
、NoEcho
和 AllowCtrlC
。
示例:
$keyInfo = $Host.UI.RawUI.ReadKey()
在這個示例中,我們使用 $Host.UI.RawUI.ReadKey()
來捕獲用戶按下的鍵並將其存儲在 $keyInfo
變量中。這個方法等待用戶按下鍵並返回一個表示按下的鍵的對象。
$keyInfo
對象包含的屬性有 Character
(表示按下的鍵的字符)和 KeyDown
(指示鍵是否被按下)。
輸出:
使用 Read-Host
在 PowerShell 中啟用 按任意鍵繼續
PowerShell 中的 Read-Host
cmdlet 是一個多功能工具,用於從控制台窗口捕獲用戶輸入。其主要目的是向用戶顯示提示消息,並等待他們輸入值,然後將該值存儲在變量中以便在腳本中進行進一步處理。
示例:
Read-Host -Prompt "Press any key to continue"
在這個示例中,我們使用 Read-Host
並搭配 -Prompt
參數向用戶顯示消息 "按任意鍵繼續..."
。此時腳本暫停執行,等待用戶輸入任意文本,然後按 Enter 鍵。
雖然這不完全是 按任意鍵
,但這種方法通過要求用戶輸入來達到類似的結果。
輸出:
使用 cmd /c 'pause'
命令在 PowerShell 中啟用 按任意鍵繼續
在 PowerShell 腳本中,cmd /c 'pause'
方法提供了一種簡單的方法來暫停腳本執行並等待用戶確認,然後再進行下一步。這種方法利用 cmd
命令在 PowerShell 腳本中執行暫停命令。
執行時,暫停命令顯示消息 "按任意鍵繼續 . . ."
,並等待用戶按任意鍵,然後允許腳本繼續執行。
示例:
cmd /c pause
在這個示例中,我們使用 cmd /c 'pause'
命令來暫停腳本執行並等待用戶輸入。執行時,命令提示符窗口顯示消息 "按任意鍵繼續 . . ."
,並等待用戶按任意鍵後才允許腳本繼續。
輸出:
使用 timeout
在 PowerShell 中啟用 按任意鍵繼續
timeout
命令可以暫停執行特定的時間或無限時間。您可以使用 /t
選項來指定以秒為單位的時間。
指定的超時有效值範圍從 -1
到 99999
。
示例:
timeout /t 5
在這個示例中,我們使用 timeout
命令來將腳本執行暫停 5 秒。這有效地創造了一個提示,讓用戶在繼續之前等待 5 秒。
輸出:
如果未按下鍵,則使用 -1
值保持執行無限時間。
timeout /t -1
輸出:
結論
在 PowerShell 腳本中實現 按任意鍵繼續
特性對於創建互動式和用戶友好的命令行應用程序至關重要。通過利用像 [System.Console]::ReadKey()
、[Console]::ReadKey()
、Read-Host
、cmd /c 'pause'
、timeout
和 WScript.Shell Popup
等方法,腳本作者可以為用戶提供清晰的提示並在用戶確認之前暫停執行。
每種方法提供獨特的功能,可以根據具體需求進行調整,確保無縫的用戶體驗和增強的腳本互動性。無論是顯示信息性消息、確認操作,還是創建互動式工具,PowerShell 都提供多功能的工具以滿足多樣化的腳本需求。