Test-Path
경로의 모든 요소가 있는지 여부를 확인합니다.
구문
Path (기본값)
Test-Path
[-Path] <String[]>
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-PathType <TestPathType>]
[-IsValid]
[-Credential <PSCredential>]
[-UseTransaction]
[-OlderThan <DateTime>]
[-NewerThan <DateTime>]
[<CommonParameters>]
LiteralPath
Test-Path
-LiteralPath <String[]>
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-PathType <TestPathType>]
[-IsValid]
[-Credential <PSCredential>]
[-UseTransaction]
[-OlderThan <DateTime>]
[-NewerThan <DateTime>]
[<CommonParameters>]
Description
Test-Path cmdlet은 경로의 모든 요소가 존재하는지 여부를 결정합니다.
모든 요소가 있으면 $True 반환하고 누락된 요소가 있으면 $False.
또한 경로 구문이 유효한지 여부와 경로가 컨테이너 또는 터미널 또는 리프 요소로 이어지는지 여부를 알 수 있습니다.
Path 공백이면 $False 반환됩니다.
Path 빈 문자열, $null, $null 배열 또는 빈 배열인 경우 종료되지 않는 오류가 반환됩니다.
예제
예제 1: 경로 테스트
Test-Path -Path "C:\Documents and Settings\DavidC"
True
이 명령은 경로의 모든 요소, 즉 C: 디렉터리, 문서 및 설정 디렉터리 및 DavidC 디렉터리가 있는지 확인합니다.
누락된 항목이 있으면 cmdlet은 $False반환합니다.
그 외의 경우 $True를 반환합니다.
예제 2: 프로필 경로 테스트
Test-Path -Path $profile
False
Test-Path -Path $profile -IsValid
True
이러한 명령은 PowerShell 프로필의 경로를 테스트합니다.
첫 번째 명령은 경로의 모든 요소가 존재하는지 여부를 결정합니다.
두 번째 명령은 경로의 구문이 올바른지 여부를 결정합니다.
이 경우, 경로는 $False이며 구문이 올바른 것은 $True입니다.
이러한 명령은 프로필이 없더라도 프로필의 위치를 가리키는 자동 변수인 $profile사용합니다.
자동 변수에 대한 자세한 내용은 about_Automatic_Variables 참조하세요.
예제 3: 지정된 형식 외에 파일이 있는지 확인
Test-Path -Path "C:\CAD\Commercial Buildings\*" -Exclude *.dwg
False
이 명령은 .dwg 파일 이외의 상업용 건물 디렉터리에 파일이 있는지 확인합니다.
이 명령은 Path 매개 변수를 사용하여 경로를 지정합니다. 경로에 공백이 포함되어 있으므로 경로는 따옴표로 묶습니다. 경로 끝에 있는 별표는 상업용 건물 디렉터리의 내용을 나타냅니다. 이와 같은 긴 경로를 사용하여 경로의 처음 몇 글자를 입력한 다음 TAB 키를 사용하여 경로를 완료합니다.
이 명령은 Exclude 매개 변수를 지정하여 평가에서 생략할 파일을 지정합니다.
이 경우 디렉터리에 .dwg 파일만 포함되므로 결과는 $False.
예제 4: 파일 확인
Test-Path -Path $profile -PathType leaf
True
이 명령은 $profile 변수에 저장된 경로가 파일로 이어지는지 여부를 확인합니다.
이 경우 PowerShell 프로필은 .ps1 파일이므로 cmdlet은 $True반환합니다.
예제 5: 레지스트리의 경로 확인
이러한 명령은 PowerShell 레지스트리 공급자와 Test-Path 사용합니다.
첫 번째 명령은 Microsoft.PowerShell 레지스트리 키의 레지스트리 경로가 시스템에서 올바른지 테스트합니다.
PowerShell이 올바르게 설치되면 cmdlet은 $True반환합니다.
중요합니다
Test-Path 모든 PowerShell 공급자에서 제대로 작동하지 않습니다.
예를 들어 Test-Path 사용하여 레지스트리 키의 경로를 테스트할 수 있지만 레지스트리 항목의 경로를 테스트하는 데 사용하면 레지스트리 항목이 있는 경우에도 항상 $False반환합니다.
Test-Path -Path "HKLM:\Software\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell"
True
Test-Path -Path "HKLM:\Software\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell\ExecutionPolicy"
False
예제 6: 지정된 날짜보다 최신 파일인지 테스트
이 명령은 NewerThan 동적 매개 변수를 사용하여 컴퓨터의 "PowerShell.exe" 파일이 "2009년 7월 13일"보다 최신인지 여부를 확인합니다.
NewerThan 매개 변수는 파일 시스템 드라이브에서만 작동합니다.
Test-Path $pshome\PowerShell.exe -NewerThan "July 13, 2009"
True
예제 7: null을 값으로 사용하여 경로 테스트
null, null의 배열 또는 빈 배열에 대해 반환된 오류는 종료되지 않는 오류입니다.
-ErrorAction SilentlyContinue를 사용하여 억제할 수 있습니다.
다음 예제에서는 NullPathNotPermitted 오류를 반환하는 모든 사례를 보여 줍니다.
Test-Path $null
Test-Path $null, $null
Test-Path @()
Test-Path : Cannot bind argument to parameter 'Path' because it is null.
At line:1 char:11
+ Test-Path $null
+ ~~~~~
+ CategoryInfo : InvalidData: (:) [Test-Path], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.TestPathCommand
예제 8: 공백을 값으로 사용하여 경로 테스트
공백이 -Path 매개 변수에 대해 제공된 빈 문자열이거나 공백이면 false를 반환합니다.
다음 예제에서는 공백과 빈 문자열을 보여 있습니다.
Test-Path ' '
Test-Path ''
False
Test-Path : Cannot bind argument to parameter 'Path' because it is an empty string.
At line:1 char:11
+ Test-Path ''
+ ~~
+ CategoryInfo : InvalidData: (:) [Test-Path], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationErrorEmptyStringNotAllowed,Microsoft.PowerShell.Commands.TestPathCommand
매개 변수
-Credential
비고
이 매개 변수는 PowerShell과 함께 설치된 공급자에서 지원되지 않습니다. 다른 사용자를 가장하거나 이 cmdlet을 실행할 때 자격 증명을 높이려면 Invoke-Command사용합니다.
매개 변수 속성
| 형식: | PSCredential |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
(All)
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | True |
| 나머지 인수의 값: | False |
-Exclude
이 cmdlet에서 생략하는 항목을 지정합니다. 이 매개 변수의 값은 Path 매개 변수를 한정합니다. 경로 요소 또는 패턴(예: "*.txt")을 입력합니다. 와일드카드 문자가 허용됩니다.
매개 변수 속성
| 형식: | String[] |
| Default value: | None |
| 와일드카드 지원: | True |
| DontShow: | False |
매개 변수 집합
(All)
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-Filter
공급자의 형식 또는 언어로 필터를 지정합니다. 이 매개 변수의 값은 Path 매개 변수를 한정합니다. 와일드카드 문자 사용을 포함하여 필터의 구문은 공급자에 따라 달라집니다. 필터는 검색된 후 PowerShell이 개체를 필터링하지 않고 개체를 검색할 때 적용하기 때문에 다른 매개 변수보다 더 효율적입니다.
매개 변수 속성
| 형식: | String |
| Default value: | None |
| 와일드카드 지원: | True |
| DontShow: | False |
매개 변수 집합
(All)
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-Include
이 cmdlet이 테스트하는 경로를 지정합니다. 이 매개 변수의 값은 Path 매개 변수를 한정합니다. 경로 요소 또는 패턴(예: "*.txt")을 입력합니다. 와일드카드 문자가 허용됩니다.
매개 변수 속성
| 형식: | String[] |
| Default value: | None |
| 와일드카드 지원: | True |
| DontShow: | False |
매개 변수 집합
(All)
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-IsValid
이 cmdlet은 경로의 요소가 있는지 여부에 관계없이 경로의 구문을 테스트한다는 것을 나타냅니다.
이 cmdlet은 경로 구문이 유효한 경우 $True 반환하고 그렇지 않은 경우 $False.
매개 변수 속성
| 형식: | SwitchParameter |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
(All)
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-LiteralPath
테스트할 경로를 지정합니다. Path달리 LiteralPath 매개 변수의 값은 입력된 대로 정확하게 사용됩니다. 와일드카드 문자로 해석되는 문자는 없습니다. 경로에 이스케이프 문자가 포함된 경우 작은따옴표로 묶습니다. 작은따옴표는 PowerShell에 문자를 이스케이프 시퀀스로 해석하지 않도록 지시합니다.
매개 변수 속성
| 형식: | String[] |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
| 별칭: | PSPath |
매개 변수 집합
LiteralPath
| Position: | Named |
| 필수: | True |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | True |
| 나머지 인수의 값: | False |
-NewerThan
시간을 DateTime 개체로 지정합니다.
매개 변수 속성
| 형식: | DateTime |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
(All)
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-OlderThan
시간을 DateTime 개체로 지정합니다.
매개 변수 속성
| 형식: | DateTime |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
(All)
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-Path
테스트할 경로를 지정합니다. 와일드카드 문자가 허용됩니다. 경로에 공백이 포함된 경우 따옴표로 묶습니다.
매개 변수 속성
| 형식: | String[] |
| Default value: | None |
| 와일드카드 지원: | True |
| DontShow: | False |
매개 변수 집합
Path
| Position: | 0 |
| 필수: | True |
| 파이프라인의 값: | True |
| 속성 이름별 파이프라인의 값: | True |
| 나머지 인수의 값: | False |
-PathType
경로에 있는 최종 요소의 형식을 지정합니다.
이 cmdlet은 요소가 지정된 형식이면 $True 반환하고, 그렇지 않으면 $False.
이 매개 변수에 허용되는 값은 다음과 같습니다.
- 컨테이너. 디렉터리 또는 레지스트리 키와 같은 다른 요소가 포함된 요소입니다.
- 잎. 파일과 같은 다른 요소를 포함하지 않는 요소입니다.
- 어떤 것이든 컨테이너 또는 리프입니다.
경로의 마지막 요소가 특정 형식인지 여부를 나타냅니다.
주의
PowerShell 버전 6.1.2까지 IsValid 및 PathType 스위치를 함께 지정하면 Test-Path cmdlet은 PathType 스위치를 무시하고 경로 형식의 유효성을 검사하지 않고 구문 경로만 유효성을 검사합니다.
문제 #8607따르면 이 동작을 수정하는 것은 이후 버전에서 호환성이 손상되는 변경일 수 있습니다. 여기서 IsValid 및 PathType 스위치는 별도의 매개 변수 집합에 속하므로 이러한 혼동을 피하기 위해 함께 사용할 수 없습니다.
매개 변수 속성
| 형식: | TestPathType |
| Default value: | None |
| 허용되는 값: | Any, Container, Leaf |
| 와일드카드 지원: | False |
| DontShow: | False |
| 별칭: | 유형 |
매개 변수 집합
(All)
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-UseTransaction
활성 트랜잭션에 명령을 포함합니다. 이 매개 변수는 트랜잭션이 진행 중인 경우에만 유효합니다. 자세한 내용은 about_Transactions 참조하세요.
매개 변수 속성
| 형식: | SwitchParameter |
| Default value: | False |
| 와일드카드 지원: | False |
| DontShow: | False |
| 별칭: | usetx |
매개 변수 집합
(All)
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
CommonParameters
이 cmdlet은 일반적인 매개 변수인 -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction 및 -WarningVariable 매개 변수를 지원합니다. 자세한 내용은 about_CommonParameters를 참조하세요.
입력
String
리터럴 경로가 아닌 경로가 포함된 문자열을 이 cmdlet으로 파이프할 수 있습니다.
출력
Boolean
cmdlet은 부울 값을 반환합니다.
참고
경로 명사(경로 cmdlet)가 포함된 cmdlet은 경로 이름으로 작동하고 모든 PowerShell 공급자가 해석할 수 있는 간결한 형식으로 이름을 반환합니다. 특정 형식으로 경로 이름의 전부 또는 일부를 표시하려는 프로그램 및 스크립트에서 사용하도록 설계되었습니다. Dirname, Normpath, Realpath, Join또는 기타 경로 조작자를 사용할 때와 같이 사용하세요.
Test-Path은 어떤 공급자든지 노출하는 데이터로 작동하도록 설계되었습니다.
세션에서 사용할 수 있는 공급자를 나열하려면 Get-PSProvider입력합니다.
추가 정보는 about_Providers를 참조하십시오.