다음을 통해 공유


about_Wildcards

간단한 설명

PowerShell에서 와일드카드 문자를 사용하는 방법을 설명합니다.

자세한 설명

와일드카드 문자는 하나 이상의 문자를 나타냅니다. 명령에서 단어 패턴을 만드는 데 사용할 수 있습니다. 와일드카드 식은 연산자 또는 와일드카드를 -like 허용하는 매개 변수와 함께 사용됩니다.

예를 들어 디렉터리의 모든 파일과 파일 C:\Techdocs 이름 확장명을 일치하려면 다음을 .ppt 입력합니다.

Get-ChildItem C:\Techdocs\*.ppt

이 경우 별표(*) 와일드카드 문자는 파일 이름 확장명 앞에 .ppt 나타나는 모든 문자를 나타냅니다.

와일드카드 식은 정규식보다 간단합니다. 자세한 내용은 about_Regular_Expressions 참조하세요.

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

  • * - 0개 이상의 문자 일치
    • a* 일치 aA, agApple
    • a* 일치하지 않음 banana
  • ? - 문자열의 경우 해당 위치에 있는 한 문자와 일치합니다.
    • ?n 일치 an, inon
    • ?n 일치하지 않음 ran
  • ? - 파일 및 디렉터리에서 해당 위치의 문자 0개 또는 1개와 일치
    • ?.txt 일치 항목 a.txtb.txt
    • ?.txt 일치하지 않음 ab.txt
  • [ ] - 문자 범위 일치
    • [a-l]ook 일치 book, cooklook
    • [a-l]ook 일치하지 않음 took
  • [ ] - 특정 문자 일치
    • [bc]ook 일치 항목 bookcook
    • [bc]ook 일치하지 않음 hook
  • `* - 임의의 문자를 리터럴로 일치(와일드카드 문자 아님)
    • 12`*412*4
    • 12`*4 일치하지 않음 1234

동일한 단어 패턴에 여러 와일드카드 문자를 포함할 수 있습니다. 예를 들어 문자 a-l시작하는 이름의 텍스트 파일을 찾으려면 다음을 입력합니다.

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

참고 항목

파일 시스템 항목에 대한 와일드카드 일치는 문자열과 다르게 작동합니다. 자세한 내용은 DirectoryInfo.GetFiles(String, EnumerationOptions) 메서드의 설명 섹션을 참조하세요.

리터럴 문자를 와일드카드 문자로 취급하지 않고 일치하려는 경우가 있을 수 있습니다. 이러한 경우 백틱(`) 문자를 사용하여 와일드카드 문자를 이스케이프하여 리터럴 문자 값을 사용하여 비교할 수 있습니다. 예를 들어 '*hello`?*' "hello?"를 포함하는 문자열과 일치합니다.

많은 cmdlet은 매개 변수 값에 와일드카드 문자를 허용합니다. 각 cmdlet에 대한 도움말 항목에서는 와일드카드 문자를 허용하는 매개 변수에 대해 설명합니다. 와일드카드 문자를 허용하는 매개 변수의 경우 대/소문자를 구분하지 않습니다.

명령 및 스크립트 블록에서 와일드카드 문자를 사용하여 속성 값을 나타내는 단어 패턴을 만들 수 있습니다. 예를 들어 다음 명령은 ServiceType 속성 값에 Interactive포함된 서비스를 가져옵니다.

Get-Service | Where-Object {$_.ServiceType -Like "*Interactive*"}

다음 예제 If 에서 문은 와일드카드 문자를 사용하여 속성 값을 찾는 조건을 포함합니다. 복원 지점의 설명에 PowerShell이 포함된 경우 이 명령은 복원 지점의 CreationTime 속성 값을 로그 파일에 추가합니다.

$p = Get-ComputerRestorePoint
foreach ($point in $p) {
  if ($point.description -like "*PowerShell*") {
    Add-Content -Path C:\TechDocs\RestoreLog.txt "$($point.CreationTime)"
  }
}

참고 항목