Test-Path
경로의 모든 요소가 있는지 여부를 확인합니다.
구문
Path (Default) - FileSystem provider
Test-Path
[-Path] <String[]>
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-PathType <TestPathType>]
[-IsValid]
[-Credential <PSCredential>]
[-OlderThan <DateTime>]
[-NewerThan <DateTime>]
[<CommonParameters>]
LiteralPath - FileSystem provider
Test-Path
-LiteralPath <String[]>
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-PathType <TestPathType>]
[-IsValid]
[-Credential <PSCredential>]
[-OlderThan <DateTime>]
[-NewerThan <DateTime>]
[<CommonParameters>]
Path (Default) - All providers
Test-Path
[-Path] <string[]>
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-PathType <TestPathType>]
[-IsValid]
[-Credential <pscredential>]
[<CommonParameters>]
LiteralPath - All providers
Test-Path
-LiteralPath <string[]>
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-PathType <TestPathType>]
[-IsValid]
[-Credential <pscredential>]
[<CommonParameters>]
Description
Test-Path cmdlet은 경로의 모든 요소가 존재하는지 여부를 결정합니다. 모든 요소가 있으면 $true 반환하고 누락된 요소가 있으면 $false. 또한 경로 구문이 유효한지 여부와 경로가 컨테이너 또는 터미널 또는 리프 요소로 이어지는지 여부를 알 수 있습니다.
경로 공백 또는 빈 문자열인 경우 cmdlet은 $false반환합니다.
경로$null 배열 또는 빈 배열인 $null경우 cmdlet은 종료되지 않는 오류를 반환합니다.
예제
예제 1: 경로 테스트
Test-Path -Path "C:\Documents and Settings\DavidC"
True
이 명령은 C: 디렉터리, Documents and Settings 디렉터리 및 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 키를 사용하여 경로를 완료합니다.
이 명령은 제외 매개 변수를 지정하여 평가에서 생략할 파일을 지정합니다.
이 경우 디렉터리에 .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 동적 매개 변수를 사용하여 컴퓨터의 pwsh.exe 파일이 July 13, 2009보다 최신인지 여부를 확인합니다.
NewerThan 매개 변수는 파일 시스템 드라이브에서만 작동합니다.
Test-Path $pshome\pwsh.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반환합니다. 이는 Windows PowerShell 5.1에서 변경된 내용입니다. 빈 문자열이 제공되면 Test-Path 오류를 반환합니다.
다음 예제에서는 공백과 빈 문자열을 보여 있습니다.
Test-Path ' '
Test-Path ''
False
False
예제 9: 잘못된 드라이브가 있을 수 있는 경로 테스트
드라이브 사양이 포함된 경로를 테스트할 때 드라이브가 없으면 경로의 유효성을 테스트하지 못합니다. 이 문제를 해결하려면 드라이브 앞에 공급자 이름을 접두사로 추가할 수 있습니다.
Test-Path -IsValid Z:\abc.txt
Test-Path -IsValid FileSystem::Z:\abc.txt
False
True
매개 변수
-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. 테스트 중인 경로에 드라이브 사양이 포함되어 있으면 드라이브가 없으면 cmdlet이 false를 반환합니다. PowerShell은 테스트할 드라이브 공급자를 모르기 때문에 false를 반환합니다.
비고
.NET 2.1에서는 경로 API에 주요 변경이 도입되었습니다. 이러한 메서드는 더 이상 잘못된 경로 문자를 확인하지 않습니다. 이 변경으로 인해 PowerShell에서 IsValid 검사가 더 이상 잘못된 문자를 확인하지 않는 회귀 문제가 발생했습니다. 회귀는 향후 릴리스에서 해결될 예정입니다. 자세한 내용은 .NET Core 2.1에서의 호환성이 손상되는 변경 사항을 참조하세요.
매개 변수 속성
| 형식: | 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, Lp 로 |
매개 변수 집합
LiteralPath
| Position: | Named |
| 필수: | True |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | True |
| 나머지 인수의 값: | False |
-NewerThan
이 매개 변수는 FileSystem 공급자에서 사용할 수 있는 동적 매개 변수입니다.
시간을 DateTime 개체로 지정합니다.
PowerShell 7.5 이전에는 cmdlet이 다음을 무시합니다.
-
PathType을
Any이외의 값으로 지정할 때 사용하는 매개 변수입니다. - 이 매개 변수와 함께 사용할 경우 매개 변수는 매개 변수보다 오래된 것을 의미합니다.
- 경로 디렉터리를 가리키는 경우 이 매개 변수입니다.
PowerShell 7.5부터 이 매개 변수를 PathType 매개 변수의 값과 함께 사용하여 OlderThan 매개 변수로 날짜 범위를 테스트하고 디렉터리 기간을 테스트할 수 있습니다.
자세한 내용은 about_FileSystem_Provider참조하세요.
매개 변수 속성
| 형식: | |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
(All)
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-OlderThan
이 매개 변수는 FileSystem 공급자에서 사용할 수 있는 동적 매개 변수입니다.
시간을 DateTime 개체로 지정합니다.
PowerShell 7.5 이전에는 cmdlet이 다음을 무시합니다.
-
PathType을
Any이외의 값으로 지정할 때 사용하는 매개 변수입니다. - 이 매개 변수는 NewerThan 매개 변수와 함께 사용되는 경우입니다.
- 경로 디렉터리를 가리키는 경우 이 매개 변수입니다.
PowerShell 7.5부터 이 매개 변수를 PathType 매개 변수의 값과 함께 사용하여 NewerThan 매개 변수를 사용하여 날짜 범위를 테스트하고 디렉터리 기간을 테스트할 수 있습니다.
자세한 내용은 about_FileSystem_Provider참조하세요.
매개 변수 속성
| 형식: | |
| 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. 이 매개 변수에 허용되는 값은 다음과 같습니다.
-
Container- 디렉터리 또는 레지스트리 키와 같은 다른 요소를 포함하는 요소입니다. -
Leaf- 파일과 같은 다른 요소를 포함하지 않는 요소입니다. -
Any- 컨테이너 또는 리프입니다.
경로의 마지막 요소가 특정 형식인지 여부를 나타냅니다.
주의
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 |
CommonParameters
이 cmdlet은 일반적인 매개 변수인 -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction 및 -WarningVariable 매개 변수를 지원합니다. 자세한 내용은 about_CommonParameters를 참조하세요.
입력
String
리터럴 경로가 아닌 경로가 포함된 문자열을 이 cmdlet으로 파이프할 수 있습니다.
출력
Boolean
cmdlet은 부울 값을 반환합니다.
참고
경로 명사(Path cmdlet)가 포함된 cmdlet은 경로와 함께 작동하고 모든 PowerShell 공급자가 해석할 수 있는 간결한 형식으로 이름을 반환합니다. 특정 형식으로 경로의 전부 또는 일부를 표시하려는 프로그램 및 스크립트에서 사용하도록 설계되었습니다. Dirname, Normpath, Realpath, Join또는 기타 경로 조작자를 사용할 때와 같이 사용하세요.
Test-Path은 어떤 공급자든지 노출하는 데이터로 작동하도록 설계되었습니다. 세션에서 사용할 수 있는 공급자를 나열하려면 Get-PSProvider입력합니다. 추가 정보는 about_Providers를 참조하십시오.