簡體   English   中英

為什么我不能在PowerShell中多次讀取KeyPress?

[英]Why can't I read a KeyPress more than once in PowerShell?

$KeyOption = 'Y','N'
while ($KeyOption -notcontains $KeyPress.Character) {
 $KeyPress = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
}

我第一次運行這個,我能夠讀到這個角色,但是下次我運行它時,不是那么多......

  • 是的,我在PowerShell窗口中運行它
  • 不,我沒有從PowerShell ISE運行它。

我查看了這個文檔 ,並且有一個名為$ host.UI.RawUI的相關函數。 FlushInputBuffer ,但運行它似乎並沒有改變我只能讓它工作一次的事實......我還需要做些什么嗎?

如果在同一范圍內再次運行代碼, $KeyPress仍然具有上一次運行的值,如果前一次運行設法基於有效的按鍵退出while循環,則后續運行甚至不會進入循環。

因此,切換到do { ... } while (...)循環:

$KeyOption = 'Y','N'
do {
  $KeyPress = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
} while ($KeyOption -notcontains $KeyPress.Character)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM