about_Special_Characters
간단한 설명
PowerShell이 시퀀스의 다음 문자를 해석하는 방법을 제어하는 특수 문자 시퀀스에 대해 설명합니다.
자세한 설명
PowerShell은 표준 문자 집합의 일부가 아닌 문자를 나타내는 데 사용되는 특수 문자 시퀀스 집합을 지원합니다. 시퀀스는 일반적으로 이스케이프 시퀀스라고 합니다.
이스케이프 시퀀스는 그레이브 악센트(ASCII 96)라고 하는 백틱 문자로 시작하며 대/소문자를 구분합니다. 백틱 문자를 이스케이프 문자라고도 합니다.
이스케이프 시퀀스는 큰따옴표("
) 문자열에 포함된 경우에만 해석됩니다.
PowerShell은 다음 이스케이프 시퀀스를 인식합니다.
Sequence | 설명 |
---|---|
`0 |
Null |
`a |
경고 |
`b |
백스페이스 |
`f |
폼 피드 |
`n |
줄 바꿈 |
`r |
캐리지 리턴 |
`t |
가로 탭 |
`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
양식 피드('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
세로 탭('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
이 두 번째 예제에서는 변수 $HOME
를 cmd.exe /c echo
명령에 두 번 전달합니다.
cmd.exe /c echo $HOME --% $HOME
출력은 변수 값 $HOME
이 전달되도록 PowerShell에서 첫 번째 인스턴스를 해석하는 것을 보여 줍니다 cmd
. 두 번째 인스턴스 $HOME
는 중지 구문 분석 토큰 후에 제공되므로 리터럴 문자열로 전달됩니다.
C:\Users\username $HOME
중지 구문 분석 토큰에 대한 자세한 내용은 about_Parsing 참조하세요.
Tilde (~)
타일드 문자(~
)는 PowerShell에서 특별한 의미를 줍니다. 경로의 시작 부분에서 PowerShell 명령과 함께 사용되는 경우 PowerShell은 타일 문자를 사용자의 홈 디렉터리로 확장합니다. 경로의 다른 위치에서 타일 문자를 사용하는 경우 리터럴 문자로 처리됩니다.
중지 구문 분석 토큰에 대한 자세한 내용은 about_Parsing 참조하세요.
참고 항목
PowerShell