Требование от пользователей заполнения поля (Powershell) - PullRequest
0 голосов
/ 16 июня 2020

У меня есть фрагмент в PowerShell, который считывает вопросы из плоского файла и предлагает пользователю предоставить логический или строковый ответ (например, вам нравятся летающие машины? Почему вам нравятся прыжки с парашютом?). Все ответы записываются в .xls для последующего использования в БД.

Я могу заставить сценарий повторять вопрос для пользователей, которые не выбирают логический ответ (например, A, B, C или «Да», «Нет»). Однако заставить пользователя предоставить строковый (короткий) ответ) немного сложнее.

$Question7 = Get-Content -path $PSScriptRoot\src\Question7.txt -raw

Write-Host $Question7 -ForegroundColor Yellow
$reason_for_hobby = Read-Host -Prompt "Please write in the answer"
Writ-Host "Answer: $reason_for_hobby" -ForegroundColor Green

Add-Member -inputObject $infoObject -memberType NoteProperty -name "HBYREASON" - 
value $reason_for_hobby

Я пытаюсь выяснить, как заставить пользователей предоставить как минимум 215-символьный ответ и повторить вопрос, если он не предоставлен.

Спасибо и будьте в безопасности.

1 Ответ

0 голосов
/ 16 июня 2020

Вы можете добиться этого с помощью простого while -l oop (в то время как $reason_for_hobby имеет менее 215 повторений):

while ($reason_for_hobby.Length -lt 215){
    $reason_for_hobby = Read-Host -Prompt "Please write in the answer"
}

Однако лучше было бы do-while -l oop, если переменная $reason_for_hobby не инициализировалась ранее (сделайте это один раз и повторите, пока $reason_for_hobby содержит менее 215 символов):

do{
    $reason_for_hobby = Read-Host -Prompt "Please write in the answer"
}while ($reason_for_hobby.Length -lt 215)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...