about_Special_Characters

간단한 설명

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

자세한 설명

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

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

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

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

Sequence 설명
`0 Null
`a 경고
`b 백스페이스
`e 이스케이프(PowerShell 6에 추가됨)
`f 폼 피드
`n 줄 바꿈
`r 캐리지 리턴
`t 가로 탭
`u{x} 유니코드 이스케이프 시퀀스(PowerShell 6에 추가됨)
`v 세로 탭

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

특수 구문 분석 토큰:

Sequence 설명
-- 다시 기본 값을 매개 변수가 아닌 인수로 처리
--% 다음 항목의 구문 분석 중지

Null('0)

Null(`0) 문자는 PowerShell 출력에서 빈 공간으로 나타납니다. 이 기능을 사용하면 PowerShell을 사용하여 문자열 종료 또는 레코드 종료 표시기와 같은 null 문자를 사용하는 텍스트 파일을 읽고 처리할 수 있습니다. 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) 위의 유니코드 문자가`u{1F44D} 포함됩니다. 유니코드 이스케이프 시퀀스에는 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 이 전달되도록 PowerShell에서 첫 번째 인스턴스를 해석하는 것을 보여 줍니다 cmd. 두 번째 인스턴스 $HOME 는 중지 구문 분석 토큰 후에 제공되므로 리터럴 문자열로 전달됩니다.

C:\Users\username  $HOME

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

참고 항목