about_Wildcards
간단한 설명
PowerShell에서 와일드카드 문자를 사용하는 방법을 설명합니다.
자세한 설명
와일드카드 문자는 하나 이상의 문자를 나타냅니다. 명령에서 단어 패턴을 만드는 데 사용할 수 있습니다. 와일드카드 식은 연산자 또는 와일드카드를 -like
허용하는 매개 변수와 함께 사용됩니다.
예를 들어 디렉터리의 모든 파일과 파일 C:\Techdocs
이름 확장명을 일치하려면 다음을 .ppt
입력합니다.
Get-ChildItem C:\Techdocs\*.ppt
이 경우 별표(*
) 와일드카드 문자는 파일 이름 확장명 앞에 .ppt
나타나는 모든 문자를 나타냅니다.
와일드카드 식은 정규식보다 간단합니다. 자세한 내용은 about_Regular_Expressions 참조하세요.
PowerShell은 다음 와일드카드 문자를 지원합니다.
*
- 0개 이상의 문자 일치a*
일치aA
,ag
및Apple
a*
일치하지 않음banana
?
- 문자열의 경우 해당 위치에 있는 한 문자와 일치합니다.?n
일치an
,in
및on
?n
일치하지 않음ran
?
- 파일 및 디렉터리에서 해당 위치의 문자 0개 또는 1개와 일치?.txt
일치 항목a.txt
및b.txt
?.txt
일치하지 않음ab.txt
[ ]
- 문자 범위 일치[a-l]ook
일치book
,cook
및look
[a-l]ook
일치하지 않음took
[ ]
- 특정 문자 일치[bc]ook
일치 항목book
및cook
[bc]ook
일치하지 않음hook
`*
- 임의의 문자를 리터럴로 일치(와일드카드 문자 아님)12`*4
가12*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)"
}
}
참고 항목
PowerShell