Я хотел бы сделать простой счетчик в Powershell. Он должен указать пользователю, хочет ли он более высокое или меньшее число. Начальный номер должен быть 0, и он не может быть ниже нуля или выше 10. Если пользователю требуется большее число, он должен увеличивать число с 1, если нижний декремент на 1. Затем он должен иметь возможность остановить по желаемому номеру. С помощью этого номера я могу установить значение реестра.Простой счетчик приращений/декретов
Я не знаю, как эффективный способ запросить пользователя. Я могу использовать командлет Read-Host, чтобы узнать, набрали ли они «более высокий» или «нижний», но есть ли более эффективный способ сделать это?
Например,
$i = 0
while (($i -gt 0) -or ($i -lt 10)){
$j = Read-Host "The current number is $i, would you like a higher/lower number, or quit?"
if ($j -eq "higher") {
$i++
Write-Host "The current number is $i"
} elseif ($j -eq "lower") {
$i--
Write-Host "The current number is $i"
} elseif ($j -eq "quit") {
Write-Host "Final number is: $i"
break
}
}
Как я могу это сделать?
Эффективность находится в руках оператора. Если я работаю в среде консоли (PowerShell), появляется диалоговое окно, как предлагается ниже, * менее эффективно, потому что это означает, что я должен снять одну руку с клавиатуры и перенести ее на мышь (если сочетания клавиш на диалог не является очевидным). Почему бы не добавить псевдонимы для «высших» и «нижних», таких как «l» и «h» и/или вверх/вниз и/или u/d? Другое примечание. У вас много избыточности в ваших вложенных операторах if/else. Используйте 'switch' на' $ j' для выполнения приращения/уменьшения и сохранения вывода в конце цикла. – alroc
[Write-Host is evil] (http://windowsitpro.com/blog/what-do-not-do-powershell-part-1) –