다음을 통해 공유


about_Special_Characters

간단한 설명

PowerShell이 시퀀스의 다음 문자를 해석하는 방법을 제어하는 특수 문자 시퀀스에 대해 설명합니다.

긴 설명

PowerShell은 표준 문자 집합의 일부가 아닌 문자를 나타내는 데 사용되는 특수 문자 시퀀스 집합을 지원합니다. 시퀀스는 일반적으로 이스케이프 시퀀스라고 합니다.

이스케이프 시퀀스는 그레이브 악센트(ASCII 96)라고 하는 백틱 문자로 시작하며 대/소문자를 구분합니다. 백틱 문자를 이스케이프 문자라고도 합니다.

이스케이프 시퀀스는 큰따옴표(") 문자열에 포함된 경우에만 해석됩니다.

PowerShell은 다음 이스케이프 시퀀스를 인식합니다.

순서 묘사
`0
`a 경고
`b 백스페이스
`e 이스케이프(PowerShell 6에 추가됨)
`f 양식 피드
`n 새 줄
`r 캐리지 리턴
`t 가로 탭
`u{x} 유니코드 이스케이프 시퀀스(PowerShell 6에 추가됨)
`v 세로 탭

PowerShell에는 구문 분석을 중지할 위치를 표시하는 특수 토큰도 있습니다. 이 토큰을 따르는 모든 문자는 해석되지 않는 리터럴 값으로 사용됩니다.

특수 구문 분석 토큰:

순서 묘사
-- 나머지 값을 매개 변수가 아닌 인수로 처리
--% 다음 항목의 구문 분석 중지
~ 물결표

Null('0)

null(`0) 문자는 PowerShell 출력에서 빈 공간으로 나타납니다. 이 기능을 사용하면 PowerShell을 사용하여 문자열 종료 또는 레코드 종료 표시기와 같은 null 문자를 사용하는 텍스트 파일을 읽고 처리할 수 있습니다. null 특수 문자는 $null 값을 저장하는 변수와 동일하지 않습니다.

경고('a)

경고(`a) 문자는 컴퓨터의 스피커에 경고음 신호를 보냅니다. 이 문자를 사용하여 사용자에게 임박한 작업에 대해 경고할 수 있습니다. 다음 예제에서는 두 개의 경고음 신호를 로컬 컴퓨터의 스피커에 보냅니다.

for ($i = 0; $i -le 1; $i++){"`a"}

백스페이스('b)

백스페이스(`b) 문자는 커서를 한 문자 뒤로 이동하지만 문자를 삭제하지는 않습니다.

이 예제에서는 백업 단어를 쓴 다음 커서를 다시 두 번 이동합니다. 그런 다음 새 위치에서 공백을 쓴 다음 단어를 씁니다.

"backup`b`b out"
back out

이스케이프('e)

메모

이 특수 문자는 PowerShell 6.0에 추가되었습니다.

이스케이프(`e) 문자는 텍스트 색을 수정하는 가상 터미널 시퀀스(ANSI 이스케이프 시퀀스)를 지정하는 데 가장 일반적으로 사용되며 굵게 표시 및 밑줄과 같은 기타 텍스트 특성도 수정합니다. 이러한 시퀀스는 커서 위치 지정 및 스크롤에도 사용할 수 있습니다. PowerShell 호스트는 가상 터미널 시퀀스를 지원해야 합니다. $Host.UI.SupportsVirtualTerminal 부울 값을 확인하여 이러한 ANSI 시퀀스가 지원되는지 확인할 수 있습니다.

ANSI 이스케이프 시퀀스에 대한 자세한 내용은 Wikipedia의 ANSI 이스케이프 코드 문서를 참조하세요.

다음은 녹색 전경색으로 텍스트를 출력하는 예제입니다.

$fgColor = 32 # green
"`e[${fgColor}mGreen text`e[0m"
Green text

양식 피드('f)

양식 피드(`f) 문자는 현재 페이지를 꺼내서 다음 페이지에서 계속 인쇄하는 인쇄 명령입니다. 양식 피드 문자는 인쇄된 문서에만 영향을 줍니다. 화면 출력에는 영향을 주지 않습니다.

새 줄('n)

새 줄(`n) 문자는 문자 바로 뒤에 줄 바꿈을 삽입합니다.

이 예제에서는 새 줄 바꿈 문자를 사용하여 Write-Host 명령에서 줄 바꿈을 만드는 방법을 보여 있습니다.

"There are two line breaks to create a blank line`n`nbetween the words."
There are two line breaks to create a blank line

between the words.

캐리지 리턴('r)

캐리지 리턴(`r) 문자는 출력 커서를 현재 줄의 시작 부분으로 이동하고 계속 작성합니다. 현재 줄의 모든 문자를 덮어씁니다.

이 예제에서는 캐리지 리턴 전의 텍스트를 덮어씁니다.

Write-Host "These characters are overwritten.`rI want this text instead "

`r 문자 앞의 텍스트는 삭제되지 않고 덮어씁니다.

I want this text instead written.

가로 탭('t)

가로 탭(`t) 문자가 다음 탭 정지로 이동하고 해당 지점에서 계속 작성합니다. 기본적으로 PowerShell 콘솔에는 8번째 공간마다 탭 정지가 있습니다.

다음은 각 열 사이에 두 개의 탭을 삽입하는 예제입니다.

"Column1`t`tColumn2`t`tColumn3"
Column1         Column2         Column3

유니코드 문자('u{x})

메모

이 특수 문자는 PowerShell 6.0에 추가되었습니다.

유니코드 이스케이프 시퀀스(`u{x})를 사용하면 코드 포인트의 16진수 표현으로 유니코드 문자를 지정할 수 있습니다. 여기에는 > 엄지손가락과 같은 이모지 문자가 포함된 기본 다국어 평면(0xFFFF) 위의 유니코드 문자가 포함됩니다. 유니코드 이스케이프 시퀀스에는 16진수 이상이 필요하며 최대 6개의 16진수 숫자를 지원합니다. 시퀀스의 최대 16진수 값은 10FFFF.

다음은 위쪽 화살표() 기호를 ↕ 출력하는 예제입니다.

"`u{2195}"

세로 탭('v)

세로 탭(`v) 문자는 다음 세로 탭 정지로 이동하고 그 시점에서 나머지 출력을 씁니다. 세로 탭의 렌더링은 디바이스 및 터미널에 따라 달라집니다.

Write-Host "There is a vertical tab`vbetween the words."

다음 예제에서는 일부 일반적인 환경에서 세로 탭의 렌더링된 출력을 보여 줍니다.

Windows 콘솔 호스트 애플리케이션은 추가 간격이 추가되지 않은 특수 문자로 (`v)를 해석합니다.

There is a vertical tab♂between the words.

Windows 터미널 세로 탭 문자를 캐리지 리턴 및 줄 바꿈으로 렌더링합니다. 나머지 출력은 다음 줄의 시작 부분에 인쇄됩니다.

There is a vertical tab
between the words.

프린터 또는 Unix 기반 콘솔에서 세로 탭 문자는 다음 줄로 이동하고 해당 시점에 나머지 출력을 씁니다.

There is a vertical tab
                       between the words.

줄 연속

또한 백틱 문자는 명령이 다음 줄에서 계속된다는 PowerShell 파서에 대한 신호로 줄 끝에 사용될 수도 있습니다. 자세한 내용은 about_Parsing참조하세요.

매개 변수 끝 토큰(--)

매개 변수 끝 토큰(--)은 다음에 있는 모든 인수가 큰따옴표가 있는 것처럼 실제 형식으로 전달되어야 임을 나타냅니다. 예를 들어 -- 사용하여 따옴표를 사용하거나 매개 변수로 해석하지 않고 문자열 -InputObject 출력할 수 있습니다.

Write-Output -- -InputObject
-InputObject

POSIX 셸 및 유틸리티 사양에 지정된 규칙입니다.

토큰 구문 분석 중지(--%)

중지 구문 분석(--%) 토큰을 사용하면 PowerShell에서 문자열을 PowerShell 명령 및 식으로 해석할 수 없습니다. 이렇게 하면 해석을 위해 해당 문자열을 다른 프로그램에 전달할 수 있습니다.

프로그램 이름 뒤와 오류를 일으킬 수 있는 프로그램 인수 앞에 중지 구문 분석 토큰을 배치합니다.

이 예제에서 Icacls 명령은 중지 구문 분석 토큰을 사용합니다.

icacls X:\VMS --% /grant Dom\HVAdmin:(CI)(OI)F

PowerShell은 다음 문자열을 Icacls보냅니다.

X:\VMS /grant Dom\HVAdmin:(CI)(OI)F

이 두 번째 예제에서는 변수 $HOMEcmd.exe /c echo 명령에 두 번 전달합니다.

cmd.exe /c echo $HOME --% $HOME

출력은 변수 값이 $HOME전달되도록 cmd 첫 번째 인스턴스가 PowerShell에서 해석됨을 보여 줍니다. $HOME 두 번째 인스턴스는 중지 구문 분석 토큰 후에 제공되므로 리터럴 문자열로 전달됩니다.

C:\Users\username  $HOME

구문 분석 중지 토큰에 대한 자세한 내용은 about_Parsing참조하세요.

Tilde (~)

타일드 문자(~)는 PowerShell에서 특별한 의미를 가집니다. 경로의 시작 부분에서 PowerShell 명령과 함께 사용되는 경우 PowerShell은 타일 문자를 사용자의 홈 디렉터리로 확장합니다. 경로의 다른 위치에서 타일 문자를 사용하는 경우 리터럴 문자로 처리됩니다.

구문 분석 중지 토큰에 대한 자세한 내용은 about_Parsing참조하세요.

참고하십시오