다음을 통해 공유


Cmdlet 매개 변수에서 와일드카드 문자 지원

종종 단일 리소스가 아닌 리소스 그룹에 대해 실행할 cmdlet을 디자인해야 합니다. 예를 들어 cmdlet은 이름이나 확장명이 같은 데이터 저장소의 모든 파일을 찾아야 할 수 있습니다. 리소스 그룹에 대해 실행할 cmdlet을 디자인할 때 와일드카드 문자를 지원해야 합니다.

비고

와일드카드 문자 사용은 globbing라고도 합니다.

와일드카드를 사용하는 Windows PowerShell Cmdlet

많은 Windows PowerShell cmdlet은 해당 매개 변수 값에 와일드카드 문자를 지원합니다. 예를 들어 Name 또는 Path 매개 변수가 있는 거의 모든 cmdlet은 이러한 매개 변수에 대해 와일드카드 문자를 지원합니다. (Path 매개 변수가 있는 대부분의 cmdlet에도 와일드카드 문자를 지원하지 않는 LiteralPath 매개 변수가 있습니다.) 다음 명령은 이름이 동사 가져오기를 포함하는 현재 세션의 모든 cmdlet을 반환하는 데 와일드카드 문자를 사용하는 방법을 보여 줍니다.

Get-Command get-*

지원되는 와일드카드 문자

Windows PowerShell은 다음 와일드카드 문자를 지원합니다.

와일드 카드 설명 예시 일치 항목 일치하지 않음
* 지정된 위치에서 시작하여 0개 이상의 문자와 일치 a* A, ag, Apple
? 지정된 위치에 있는 문자와 일치 ?n An, in, on 달렸다
[ ] 문자 범위와 일치 [a-l]ook 책, 요리, 보기 nook, took
[ ] 지정된 문자와 일치 [bn]ook 책, 구석 쿡, 봐

와일드카드 문자를 지원하는 cmdlet을 디자인할 때 와일드카드 문자의 조합을 허용합니다. 예를 들어 다음 명령은 Get-ChildItem cmdlet을 사용하여 C:\Techdocs 폴더에 있고 문자 "a"에서 "l"으로 시작하는 모든 .txt 파일을 검색합니다.

Get-ChildItem C:\techdocs\[a-l]\*.txt

이전 명령은 범위 와일드카드 [a-l] 사용하여 파일 이름이 "a"에서 "l" 문자로 시작하고 * 와일드카드 문자를 파일 이름의 첫 번째 문자와 .txt 확장명 사이의 모든 문자에 대한 자리 표시자로 사용하도록 지정합니다.

다음 예제에서는 문자 "d"를 제외하지만 "a"에서 "f"로 다른 모든 문자를 포함하는 범위 와일드카드 패턴을 사용합니다.

Get-ChildItem C:\techdocs\[a-cef]\*.txt

와일드카드 패턴에서 리터럴 문자 처리

지정한 와일드카드 패턴에 와일드카드 문자로 해석해서는 안 되는 리터럴 문자가 포함된 경우 백틱 문자(`)를 이스케이프 문자로 사용합니다. PowerShell API에서 리터럴 문자를 지정하는 경우 단일 백틱을 사용합니다. PowerShell 명령 프롬프트에서 리터럴 문자를 지정하는 경우 두 개의 백틱을 사용합니다.

예를 들어 다음 패턴에는 문자 그대로 사용해야 하는 두 개의 대괄호가 포함되어 있습니다.

PowerShell API에서 사용되는 경우 다음을 사용합니다.

  • "John Smith '[*']"

PowerShell 명령 프롬프트에서 사용하는 경우:

  • "John Smith ''[*']"

이 패턴은 "John Smith [Marketing]" 또는 "John Smith [Development]"에 일치합니다. 다음은 그 예입니다.

PS> "John Smith [Marketing]" -like "John Smith ``[*``]"
True

PS> "John Smith [Development]" -like "John Smith ``[*``]"
True

Cmdlet 출력 및 와일드카드 문자

cmdlet 매개 변수가 와일드카드 문자를 지원하는 경우 작업은 일반적으로 배열 출력을 생성합니다. 경우에 따라 사용자가 단일 항목만 사용할 수 있으므로 배열 출력을 지원하는 것은 의미가 없습니다. 예를 들어 Set-Location cmdlet은 사용자가 단일 위치만 설정하기 때문에 배열 출력을 지원하지 않습니다. 이 경우 cmdlet은 와일드카드 문자를 계속 지원하지만 단일 위치에 대한 해상도를 강제로 적용합니다.

또한 참조하십시오

Windows PowerShell Cmdlet 작성

WildcardPattern 클래스