PowerShell에서 읽기 호스트로 기본값 설정
이 기사에서는 Read-Host
명령의 기본값을 설정하는 다양한 방법을 이해합니다.
PowerShell의 Read-Host
개요
콘솔에서 입력을 한 줄씩 읽습니다. 입력 라인은 콘솔에서 가져오고 Read-Host
cmdlet(stdin)에서 읽습니다.
많은 상황에서 사용자에게 피드백을 요청하는 데 사용할 수 있습니다. 이 cmdlet을 사용하면 입력을 보안 문자열로 보존할 수 있으므로 사용자에게 암호와 같은 중요한 데이터를 요청할 수 있습니다.
Read-Host
는 사용자의 입력으로 허용되는 1022
문자의 수를 정확히 제한합니다. 다음은 입력을 받아 변수에 저장하는 Read-Host
의 구문입니다.
$Name = Read-Host "Please enter your name."
$Name
변수는 값을 입력하고 Enter 키를 누를 때마다 입력된 값으로 업데이트됩니다.
PowerShell에서 Read-Host
를 사용하여 프롬프트의 기본값을 설정하는 다양한 방법
기본값을 설정하는 첫 번째 접근 방식
defaultPromptValue
라는 변수를 생성하고 문자열 값 Saad
를 제공합니다. 이 값은 입력을 제공하지 않기로 선택한 경우 사용자 입력 대신 사용됩니다.
$defaultPromptValue = 'Saad'
사용자에게 입력을 요청하는 메시지를 생성하고 Read-Host
명령을 사용하여 이 작업을 수행하는 새 변수 promptOutput
을 정의합니다.
$promptOutput = Read-Host "Press space to use default value [$($defaultPromptValue)]"
다음 단계는 사용자가 입력을 제공했는지 확인하는 조건을 구현하는 것입니다. 대답이 예인 경우 입력한 값이 defaultPromptValue
변수에 할당됩니다.
이 작업에 대한 조건을 작성할 때 두 가지 선택 사항이 있습니다.
if ($promptOutput -eq "") {} else {
$defaultPromptValue = $promptOutput
}
또는
if (!$promptOutput -eq "") {$defaultPromptValue = $promptOutput}
암호:
$defaultPromptValue = 'Saad'
$promptOutput = Read-Host "Press space to use default value [$($defaultPromptValue)]"
if (!$promptOutput -eq "") {$defaultPromptValue = $promptOutput}
기본값을 설정하는 또 다른 방법
이 접근 방식에서는 사용자가 값을 입력했는지 여부를 확인하는 조건 내에서 사용자 입력을 받는 프로세스를 재배치합니다. 이를 통해 사용자가 데이터를 제공했는지 여부를 더 잘 추적할 수 있습니다.
사용자의 조치가 없으면 기본값인 Saad
를 사용합니다. 그러나 사용자가 입력을 제공하면 promptOutput
변수에 저장된 값을 사용합니다.
암호:
$defaultPromptValue = 'Saad'
if (($promptOutput = Read-Host "Press enter to accept default value $defaultPromptValue") -eq '') {$defaultPromptValue} else {$promptOutput}
기본값을 설정하는 마지막 방법
이것이 기본값을 설정하는 마지막 방법이지만 확실히 가장 덜 중요한 방법은 아닙니다. 사용자로부터 입력이 제공되었는지 확인하고, 제공된 경우 사용자 입력 값을 defaultPromptValue.
라는 변수에 직접 할당합니다.
암호:
$defaultPromptValue = 'Saad'
if ($promptOutput = Read-Host "Value [$defaultPromptValue]") { $defaultPromptValue = $promptOutput }
이렇게 하면 else
조건을 사용할 필요가 없습니다.
I am Waqar having 5+ years of software engineering experience. I have been in the industry as a javascript web and mobile developer for 3 years working with multiple frameworks such as nodejs, react js, react native, Ionic, and angular js. After which I Switched to flutter mobile development. I have 2 years of experience building android and ios apps with flutter. For the backend, I have experience with rest APIs, Aws, and firebase. I have also written articles related to problem-solving and best practices in C, C++, Javascript, C#, and power shell.
LinkedIn