(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
留言列表