$KeyOption = 'Y','N' while ($KeyOption -notcontains $KeyPress.Character) { $KeyPress = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown") }
我第一次运行这个时,我能读到这个角色,但下次运行这个时,我看不到太多…
我看着 docs 为此,有一个名为$host.ui.rawui的相关函数。 FlushInputBuffer 但是运行它似乎并不能改变我只能使它工作一次的事实…还有什么我需要做的吗?
如果您再次运行代码 在同一范围内 , $KeyPress 仍然具有上一次运行的值,如果上一次运行成功退出 while 循环基于有效的按键,后续运行甚至不会进入循环。
$KeyPress
while
因此,切换到 do { ... } while (...) 循环:
do { ... } while (...)
$KeyOption = 'Y','N' do { $KeyPress = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown") } while ($KeyOption -notcontains $KeyPress.Character)