(1)
若要偵測使用者按的按鍵為何
可以使用以下程式片段
$key = $host.ui.RawUI.ReadKey("NoEcho,IncludeKeyUp")
$key則會存取所按的按鍵為何

例如我們按下a
讀取$key則會出現
VirtualKeyCode     Character  ControlKeyState KeyDown
-------------------      ------------  --------------------  -----------

                    65                    a                262144        False


(2)

若要讀取使用者所輸入的一行資料
則可以使用以下程式片段

$a = read-host  #Cmdlet
或者是
$a = [System.Console]::ReadLine()  #使用 .net

 

 

[]
我們如何知道ReadKey的參數有哪些?

直接輸入
$host.ui.RawUI.ReadKey

結果如下
MemberType : Method
OverloadDefinitions : {System.Management.Automation.Host.KeyInfo ReadKey(ReadKeyOptions options), S
ystem.Management.Automation.Host.KeyInfo ReadKey()}
TypeNameOfValue : System.Management.Automation.PSMethod
Value : System.Management.Automation.Host.KeyInfo ReadKey(ReadKeyOptions options), Sy
stem.Management.Automation.Host.KeyInfo ReadKey()
Name : ReadKey
IsInstance : True

我們發現ReadKey第一種函數的參數型態為ReadKeyOptions

搭配以下指令
[enum]::getnames([System.Management.Automation.Host.ReadKeyOptions])

即可列出下列參數
AllowCtrlC
NoEcho
IncludeKeyDown
IncludeKeyUp

創作者介紹

PowerShell@HungYuWu

ayowu 發表在 痞客邦 PIXNET 留言(0) 人氣()