Udostępnij za pośrednictwem


Test-Path

Określa, czy istnieją wszystkie elementy ścieżki.

Składnia

Test-Path
    [-Path] <String[]>
    [-Filter <String>]
    [-Include <String[]>]
    [-Exclude <String[]>]
    [-PathType <TestPathType>]
    [-IsValid]
    [-Credential <PSCredential>]
    [-OlderThan <DateTime>]
    [-NewerThan <DateTime>]
    [<CommonParameters>]
Test-Path
    -LiteralPath <String[]>
    [-Filter <String>]
    [-Include <String[]>]
    [-Exclude <String[]>]
    [-PathType <TestPathType>]
    [-IsValid]
    [-Credential <PSCredential>]
    [-OlderThan <DateTime>]
    [-NewerThan <DateTime>]
    [<CommonParameters>]

Opis

Polecenie cmdlet Test-Path określa, czy istnieją wszystkie elementy ścieżki. Zwraca $True, jeśli wszystkie elementy istnieją i $False, jeśli istnieją. Może również określić, czy składnia ścieżki jest prawidłowa i czy ścieżka prowadzi do kontenera, terminalu lub elementu liścia. Jeśli ścieżka jest białym znakiem lub pustym ciągiem, zostanie zwrócony . Jeśli ścieżki jest , tablica lub pusta tablica, zwracany jest błąd bez zakończenia.

Przykłady

Przykład 1. Testowanie ścieżki

Test-Path -Path "C:\Documents and Settings\DavidC"

True

To polecenie sprawdza, czy wszystkie elementy w ścieżce istnieją, czyli katalog C:, katalog Documents and Settings i katalog DavidC. Jeśli brakuje jakichkolwiek elementów, polecenie cmdlet zwraca $False. W przeciwnym razie zwraca $True.

Przykład 2. Testowanie ścieżki profilu

Test-Path -Path $profile

False

Test-Path -Path $profile -IsValid

True

Te polecenia testuje ścieżkę profilu programu PowerShell.

Pierwsze polecenie określa, czy wszystkie elementy w ścieżce istnieją. Drugie polecenie określa, czy składnia ścieżki jest poprawna. W tym przypadku ścieżka jest $False, ale składnia jest poprawna $True. Te polecenia używają $profile, zmiennej automatycznej, która wskazuje lokalizację profilu, nawet jeśli profil nie istnieje.

Aby uzyskać więcej informacji na temat zmiennych automatycznych, zobacz about_Automatic_Variables.

Przykład 3: Sprawdzanie, czy istnieją jakiekolwiek pliki oprócz określonego typu

Test-Path -Path "C:\CAD\Commercial Buildings\*" -Exclude *.dwg

False

To polecenie sprawdza, czy w katalogu Commercial Buildings znajdują się pliki inne niż pliki .dwg.

Polecenie używa parametru Path w celu określenia ścieżki. Ponieważ ścieżka zawiera spację, ścieżka jest ujęta w cudzysłów. Gwiazdka na końcu ścieżki wskazuje zawartość katalogu Komercyjna kompilacja. W przypadku długich ścieżek, takich jak ten, wpisz pierwsze kilka liter ścieżki, a następnie użyj TAB, aby ukończyć ścieżkę.

Polecenie określa parametr Wyklucz, aby określić pliki, które zostaną pominięte z oceny.

W takim przypadku, ponieważ katalog zawiera tylko pliki .dwg, wynik jest $False.

Przykład 4. Sprawdzanie pliku

Test-Path -Path $profile -PathType leaf

True

To polecenie sprawdza, czy ścieżka przechowywana w zmiennej $profile prowadzi do pliku. W takim przypadku, ponieważ profil programu PowerShell jest plikiem .ps1, polecenie cmdlet zwraca $True.

Przykład 5. Sprawdzanie ścieżek w rejestrze

Te polecenia używają Test-Path z dostawcą rejestru programu PowerShell.

Pierwsze polecenie sprawdza, czy ścieżka rejestru Microsoft.PowerShell klucz rejestru jest poprawna w systemie. Jeśli program PowerShell jest poprawnie zainstalowany, polecenie cmdlet zwraca $True.

Ważny

Test-Path nie działa poprawnie ze wszystkimi dostawcami programu PowerShell. Na przykład można użyć Test-Path do przetestowania ścieżki klucza rejestru, ale jeśli używasz go do testowania ścieżki wpisu rejestru, zawsze zwraca $False, nawet jeśli wpis rejestru jest obecny.

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

Przykład 6. Testowanie, czy plik jest nowszy niż określona data

To polecenie używa parametru dynamicznego NewerThan, aby określić, czy plik "PowerShell.exe" na komputerze jest nowszy niż "13 lipca 2009".

Parametr NewerThan działa tylko na dyskach systemu plików.

Test-Path $pshome\pwsh.exe -NewerThan "July 13, 2009"

True

Przykład 7. Testowanie ścieżki z wartością null jako wartością

Błąd zwrócony dla nulltablicy null lub pustej tablicy jest błędem niepowodującym zakończenia. Można go pominąć przy użyciu -ErrorAction SilentlyContinue. W poniższym przykładzie pokazano wszystkie przypadki, które zwracają błąd 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

Przykład 8. Testowanie ścieżki z białym znakiem jako wartością

Gdy dla parametru ścieżka zostanie podany ciąg odstępu, zwraca false. Jest to zmiana programu Windows PowerShell 5.1. Po podaniu pustego ciągu Test-Path zwraca błąd. W poniższym przykładzie pokazano białe znaki i pusty ciąg.

Test-Path ' '
Test-Path ''

False
False

Parametry

-Credential

Nuta

Ten parametr nie jest obsługiwany przez żadnych dostawców zainstalowanych w programie PowerShell. Aby personifikować innego użytkownika lub podnieść poziom poświadczeń podczas uruchamiania tego polecenia cmdlet, użyj Invoke-Command.

Typ:PSCredential
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-Exclude

Określa elementy pomijane przez to polecenie cmdlet. Wartość tego parametru kwalifikuje parametr Path. Wprowadź element ścieżki lub wzorzec, taki jak "*.txt". Dozwolone są symbole wieloznaczne.

Typ:String[]
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:True

-Filter

Określa filtr w formacie lub języku dostawcy. Wartość tego parametru kwalifikuje parametr Path. Składnia filtru, w tym użycie symboli wieloznacznych, zależy od dostawcy. Filtry są wydajniejsze niż inne parametry, ponieważ dostawca stosuje je podczas pobierania obiektów zamiast filtrować obiekty po ich pobraniu.

Typ:String
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:True

-Include

Określa ścieżki, które testuje to polecenie cmdlet. Wartość tego parametru kwalifikuje parametr Path. Wprowadź element ścieżki lub wzorzec, taki jak "*.txt". Dozwolone są symbole wieloznaczne.

Typ:String[]
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:True

-IsValid

Wskazuje, że to polecenie cmdlet sprawdza składnię ścieżki, niezależnie od tego, czy istnieją elementy ścieżki. To polecenie cmdlet zwraca $True, jeśli składnia ścieżki jest prawidłowa i $False, jeśli nie jest.

Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-LiteralPath

Określa ścieżkę do przetestowania. W przeciwieństwie do Pathwartość parametru LiteralPath jest używana dokładnie tak, jak jest typowana. Znaki nie są interpretowane jako symbole wieloznaczne. Jeśli ścieżka zawiera znaki, które mogą być interpretowane przez program PowerShell jako sekwencje ucieczki, należy ująć ścieżkę w pojedynczy cudzysłów, aby nie były interpretowane.

Typ:String[]
Aliasy:PSPath, LP
Position:Named
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-NewerThan

Określ godzinę jako obiekt DateTime.

Typ:Nullable<T>[DateTime]
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-OlderThan

Określ godzinę jako obiekt DateTime.

Typ:Nullable<T>[DateTime]
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Path

Określa ścieżkę do przetestowania. Dozwolone są symbole wieloznaczne. Jeśli ścieżka zawiera spacje, należy ująć ją w cudzysłów.

Typ:String[]
Position:0
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:True

-PathType

Określa typ końcowego elementu w ścieżce. To polecenie cmdlet zwraca $True, jeśli element ma określony typ i $False, jeśli tak nie jest. Dopuszczalne wartości tego parametru to:

  • Kontener. Element zawierający inne elementy, takie jak katalog lub klucz rejestru.
  • Liść. Element, który nie zawiera innych elementów, takich jak plik.
  • Jakikolwiek. Kontener lub liść.

Informuje, czy ostatni element w ścieżce ma określony typ.

Ostrożność

Do wersji 6.1.2 programu PowerShell, gdy przełączniki IsValid i PathType są określane razem, polecenie cmdlet Test-Path ignoruje przełącznik PathType i weryfikuje tylko ścieżkę syntatyczną bez sprawdzania poprawności typu ścieżki.

Zgodnie z problem #8607, naprawienie tego zachowania może być zmianą powodującą niezgodność w przyszłej wersji, w której IsValid i PathType przełączniki należą do oddzielnych zestawów parametrów, a tym samym nie można ich używać razem, unikając tego zamieszania.

Typ:TestPathType
Aliasy:Type
Dopuszczalne wartości:Any, Container, Leaf
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

Dane wejściowe

String

Do tego polecenia cmdlet można przekazać ciąg zawierający ścieżkę, ale nie ścieżkę literału.

Dane wyjściowe

Boolean

Polecenie cmdlet zwraca wartość logiczną .

Uwagi

Polecenia cmdlet zawierające Path noun (Path cmdlet) działają z nazwami ścieżek i zwracają nazwy w zwięzłym formacie, który mogą interpretować wszyscy dostawcy programu PowerShell. Są one przeznaczone do użytku w programach i skryptach, w których chcesz wyświetlić całą lub część nazwy ścieżki w określonym formacie. Użyj ich tak, jak używać Dirname, Normpath, Realpath, Joinlub innych manipulatorów ścieżek.

Test-Path jest przeznaczona do pracy z danymi udostępnianymi przez dowolnego dostawcę. Aby wyświetlić listę dostawców dostępnych w sesji, wpisz Get-PSProvider. Aby uzyskać więcej informacji, zobacz about_Providers.