$KeyOption = 'Y','N'
while ($KeyOption -notcontains $KeyPress.Character) {
$KeyPress = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
}
第一次运行此程序,我就能读取字符,但是下次运行此程序时,则不会那么多...
为此,我查看了docs,有一个名为$ host.UI.RawUI。FlushInputBuffer的相关函数,但是运行它似乎并没有改变我只能做到这一点的事实。工作一次...还有什么需要做的吗?
答案 0 :(得分:3)
如果您再次在同一范围内运行代码 ,则$KeyPress
仍具有上一次运行的值,并且如果上一次运行设法退出了while
循环根据有效的按键操作,后续运行甚至都不会进入循环。
因此,切换到do { ... } while (...)
循环:
$KeyOption = 'Y','N'
do {
$KeyPress = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
} while ($KeyOption -notcontains $KeyPress.Character)