PowerShell에서 읽기 호스트로 기본값 설정

Waqar Aslam 2023년6월21일
  1. PowerShell의 Read-Host 개요
  2. PowerShell에서 Read-Host를 사용하여 프롬프트의 기본값을 설정하는 다양한 방법
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 조건을 사용할 필요가 없습니다.

작가: Waqar Aslam
Waqar Aslam avatar Waqar Aslam avatar

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