Read-Host
콘솔에서 입력 줄을 읽습니다.
구문
Read-Host
[[-Prompt] <Object>]
[-MaskInput]
[<CommonParameters>]
Read-Host
[[-Prompt] <Object>]
[-AsSecureString]
[<CommonParameters>]
Description
cmdlet은 Read-Host
콘솔(stdin)에서 입력 줄을 읽습니다. 이를 사용하여 사용자에게 입력을 요청하는 메시지를 표시할 수 있습니다. 입력을 보안 문자열로 저장할 수 있으므로 이 cmdlet을 사용하여 사용자에게 암호와 같은 보안 데이터를 묻는 메시지를 표시할 수 있습니다.
참고 항목
Read-Host
에는 사용자의 입력으로 허용할 수 있는 1022자의 제한이 있습니다.
예제
예제 1: 변수에 콘솔 입력 저장
다음은 "나이 입력하세요."라는 문자열을 프롬프트로 표시하는 예제입니다. 값을 입력하고 Enter 키를 누르면 값이 변수에 $Age
저장됩니다.
$Age = Read-Host "Please enter your age"
예제 2: 콘솔 입력을 보안 문자열로 저장
다음은 "암호 입력:" 문자열을 프롬프트로 표시하는 예제입니다. 값을 입력할 때 입력 대신 별표(*
)가 콘솔에 표시됩니다. Enter 키를 누르면 값이 변수에 SecureString 개체 $pwd_secure_string
로 저장됩니다.
$pwd_secure_string = Read-Host "Enter a Password" -AsSecureString
예제 3: 마스크 입력 및 일반 텍스트 문자열
다음은 "암호 입력:" 문자열을 프롬프트로 표시하는 예제입니다. 값을 입력할 때 입력 대신 별표(*
)가 콘솔에 표시됩니다. Enter 키를 누르면 값이 변수에 일반 텍스트 String 개체 $pwd_string
로 저장됩니다.
$pwd_string = Read-Host "Enter a Password" -MaskInput
예제 4: 입력 정규화
다음은 세미콜론으로 구분된 도시 목록을 입력하라는 메시지를 표시하는 예제입니다. 사용자가 입력한 문자열의 값을 표시합니다. 이 예제에서 사용자는 일부 항목 사이에 공백을 추가했습니다. 이로 인해 코드에서 정확한 이름이 예상되는 스크립트의 뒷부분에서 오류가 발생할 수 있습니다.
이 예제에서는 추가 공백 없이 입력 문자열을 항목 배열로 변환하는 방법을 보여줍니다.
$prompt = @(
'List the cities you want weather information for.'
'When specifying multiple cities, separate them with a semi-colon, like:'
"'New York; Osan; Koforidua'"
) -join ' '
$cities = Read-Host $prompt
"Input cities string: `n`t'$cities'"
$splitCities = $cities -split ';'
"Split cities array:"
$splitCities | ForEach-Object -Process { "`t'$_'" }
$normalizedCities = $splitCities | ForEach-Object -Process { $_.Trim() }
"Normalized split cities array:"
$normalizedCities | ForEach-Object -Process { "`t'$_'" }
Input cities string:
' New York; Osan ;Koforidua '
Split cities array:
' New York'
' Osan '
'Koforidua '
Normalized split cities array:
'New York'
'Osan'
'Koforidua'
이 예제에서는 연산자를 -split
사용하여 입력 문자열을 문자열 배열로 변환합니다. 배열의 각 문자열에는 다른 도시의 이름이 포함됩니다. 그러나 분할 문자열에는 추가 공백이 포함됩니다. 메서드는 Trim()
각 문자열에서 선행 및 후행 공백을 제거합니다.
매개 변수
-AsSecureString
사용자가 입력으로 입력하는 문자 대신 별표(*
)가 cmdlet에 표시됨을 나타냅니다. 이 매개 변수를 사용하는 경우 cmdlet의 Read-Host
출력은 SecureString 개체(System.Security.SecureString)입니다.
형식: | SwitchParameter |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-MaskInput
사용자가 입력으로 입력하는 문자 대신 별표(*
)가 cmdlet에 표시됨을 나타냅니다. 이 매개 변수를 사용하는 경우 cmdlet의 Read-Host
출력은 String 개체입니다.
이를 통해 SecureString 대신 일반 텍스트로 반환되는 암호를 안전하게 확인할 수 있습니다.
이 매개 변수는 PowerShell 7.1에 추가되었습니다.
형식: | SwitchParameter |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Prompt
프롬프트의 텍스트를 지정합니다. 문자열을 입력합니다. 문자열에 공백이 포함되어 있으면 따옴표로 묶습니다. PowerShell은 입력한 텍스트에 콜론(:
)을 추가합니다.
형식: | Object |
Position: | 0 |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
입력
None
개체를 이 cmdlet으로 파이프할 수 없습니다.
출력
기본적으로 이 cmdlet은 문자열을 반환합니다.
AsSecureString 매개 변수를 사용하는 경우 이 cmdlet은 SecureString을 반환합니다.
참고
이 cmdlet은 호스트 프로세스의 stdin 스트림에서만 읽습니다. 일반적으로 stdin 스트림은 호스트 콘솔의 키보드에 연결됩니다.
관련 링크
PowerShell