如何使我的脚本在运行和执行后台任务时监听用户输入。 “读取主机”不执行我想要的操作,因为它显示提示并等待用户输入。 我不想等待,因为用户输入不是强制性的。不仅仅是在脚本执行过程中(脚本运行长时间循环),我想在不停止脚本的情况下更改某些参数。
例如,当我在键盘上按4时,脚本应在运行时将其选中并将特定变量设置为“ 4”,并继续将变量设置为该值进行处理。
听起来解决方案是使用某种“侦听器”,该侦听器位于背景中并听键盘敲击,但我不知道Powershell是否可以做到这一点。
编辑:我对帖子进行了一些澄清。它不是真正的代码,但显示了结构。有一个持久的循环会创建许多后台任务。如果数量低于限制,则会创建新的后台任务。 我想要的是能够通过输入新值来更改$ limit,而while循环保持运行。循环必须继续运行,而不要等待输入,因为输入完全可以选择。
$limit = SOME_VALUE
while($condition)
{
if ($total_number_of_background_tasks < $limit) {
create new background task }
}
Continue to do something
答案 0 :(得分:0)
您可以尝试这样,它会等待按键并将按键存储到变量中:
while($true){
$key = [Console]::ReadKey().Key.ToString()
}
$ key每次都会被覆盖,因此要在其上附加按键:
$key = ""
while($true){
$key += [Console]::Readkey().Key.Tostring()
}
将键存储为数组:
$key = @()
# Like upper one
可以像$ key [索引从0开始的索引]一样检索数组