Test-Path
Určuje, zda existují všechny prvky cesty.
Syntax
Test-Path
[-Path] <string[]>
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-PathType <TestPathType>]
[-IsValid]
[-Credential <pscredential>]
[-UseTransaction]
[-OlderThan <datetime>]
[-NewerThan <datetime>]
[<CommonParameters>]
Test-Path
-LiteralPath <string[]>
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-PathType <TestPathType>]
[-IsValid]
[-Credential <pscredential>]
[-UseTransaction]
[-OlderThan <datetime>]
[-NewerThan <datetime>]
[<CommonParameters>]
Test-Path
[-Path] <string[]>
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-PathType <TestPathType>]
[-IsValid]
[-Credential <pscredential>]
[-UseTransaction]
[<CommonParameters>]
Test-Path
-LiteralPath <string[]>
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-PathType <TestPathType>]
[-IsValid]
[-Credential <pscredential>]
[-UseTransaction]
[<CommonParameters>]
Description
Rutina Test-Path
určuje, jestli existují všechny prvky cesty. Vrátí $true
, pokud všechny prvky existují a $false
pokud nějaké chybí. Může také zjistit, zda je syntaxe cesty platná a zda cesta vede ke kontejneru, nebo terminálu nebo prvku typu list. Pokud je cesta prázdným nebo prázdným řetězcem, vrátí $false
rutina . Pokud je $null
cesta , pole $null
nebo prázdné pole, rutina vrátí neukončující chybu.
Příklady
Příklad 1: Testování cesty
Test-Path -Path "C:\Documents and Settings\DavidC"
True
Tento příkaz zkontroluje, jestli existují všechny prvky v cestě, včetně C:
adresáře, Documents and Settings
adresáře a DavidC
adresáře. Pokud nějaké chybí, rutina vrátí $false
. V opačném případě se vrátí $true
.
Příklad 2: Otestování cesty k profilu
Test-Path -Path $profile
False
Test-Path -Path $profile -IsValid
True
Tyto příkazy otestují cestu k profilu PowerShellu.
První příkaz určuje, zda existují všechny prvky v cestě. Druhý příkaz určuje, zda je syntaxe cesty správná. V tomto případě je $false
cesta , ale syntaxe je správná $true
. Tyto příkazy používají $profile
automatickou proměnnou, která odkazuje na umístění profilu, i když profil neexistuje.
Další informace o automatických proměnných najdete v tématu about_Automatic_Variables.
Příklad 3: Zkontrolujte, jestli existují nějaké soubory kromě zadaného typu.
Test-Path -Path "C:\CAD\Commercial Buildings\*" -Exclude *.dwg
False
Tento příkaz zkontroluje, jestli v adresáři Komerční budovy nejsou jiné soubory než .dwg soubory.
Příkaz k určení cesty používá parametr Path . Vzhledem k tomu, že cesta obsahuje mezeru, je cesta uzavřena do uvozovek. Hvězdička na konci cesty označuje obsah adresáře Komerční budova. U dlouhých cest, například této cesty, zadejte několik prvních písmen cesty a pak pomocí klávesy TAB cestu dokončete.
Příkaz určuje parametr Exclude , který určuje soubory, které se mají vynechat z vyhodnocení.
V tomto případě, protože adresář obsahuje pouze .dwg soubory, výsledek je $false
.
Příklad 4: Kontrola souboru
Test-Path -Path $profile -PathType leaf
True
Tento příkaz zkontroluje, jestli cesta uložená v $profile
proměnné vede k souboru. V tomto případě, protože profil PowerShellu .ps1
je soubor, rutina vrátí $true
.
Příklad 5: Kontrola cest v registru
Tyto příkazy se používají Test-Path
s poskytovatelem registru PowerShellu.
První příkaz otestuje, jestli je cesta registru klíče registru Microsoft.PowerShellu v systému správná. Pokud je PowerShell správně nainstalovaný, rutina vrátí $true
.
Důležité
Test-Path
nefunguje správně se všemi poskytovateli PowerShellu. Můžete například použít Test-Path
k otestování cesty klíče registru, ale pokud ji použijete k otestování cesty položky registru, vždy se vrátí $false
, i když je položka registru přítomna.
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
Příklad 6: Test, jestli je soubor novější než zadané datum
Tento příkaz používá NewerThan dynamický parametr k určení, zda PowerShell.exe
soubor v počítači je novější než July 13, 2009
.
Parametr NewerThan funguje pouze na jednotkách systému souborů.
Test-Path $pshome\PowerShell.exe -NewerThan "July 13, 2009"
True
Příklad 7: Testování cesty s hodnotou null
Chyba vrácená pro null
pole null
nebo prázdné pole je neukončující chyba. Může být potlačen pomocí .-ErrorAction SilentlyContinue
Následující příklad ukazuje všechny případy, které vrací NullPathNotPermitted
chybu.
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
Příklad 8: Testování cesty s prázdnými znaky jako hodnotou
Pokud je pro parametr Path zadaný řetězec prázdných znaků, vrátí .$true
Pokud je zadaný prázdný řetězec, Test-Path
vrátí chybu. Následující příklad ukazuje prázdné znaky a prázdný řetězec.
Test-Path ' '
Test-Path ''
True
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
Příklad 9: Testování cesty, která může mít neplatnou jednotku
Při testování cesty, která obsahuje specifikaci jednotky, testování platnosti cesty selže, pokud jednotka neexistuje. Tento problém můžete obejít předponou jednotky názvem zprostředkovatele.
Test-Path -IsValid Z:\abc.txt
Test-Path -IsValid FileSystem::Z:\abc.txt
False
True
Parametry
-Credential
Poznámka:
Tento parametr nejsou podporovány žádnými poskytovateli nainstalovanými v PowerShellu. Pokud chcete zosobnit jiného uživatele nebo zvýšit úroveň přihlašovacích údajů při spuštění této rutiny, použijte Invoke-Command.
Type: | PSCredential |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Exclude
Určuje položky, které tato rutina vynechá. Hodnota tohoto parametru kvalifikuje parametr Path . Zadejte element nebo vzor cesty, například *.txt
. Jsou povoleny zástupné znaky.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Filter
Určuje filtr ve formátu nebo jazyce poskytovatele. Hodnota tohoto parametru kvalifikuje parametr Path . Syntaxe filtru, včetně použití zástupných znaků, závisí na poskytovateli. Filtry jsou efektivnější než jiné parametry, protože je poskytovatel použije, když načte objekty místo toho, aby objekty po načtení vyfiltroval PowerShell.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Include
Určuje cesty, které tato rutina testuje. Hodnota tohoto parametru kvalifikuje parametr Path . Zadejte element nebo vzor cesty, například *.txt
. Jsou povoleny zástupné znaky.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-IsValid
Označuje, že tato rutina testuje syntaxi cesty bez ohledu na to, jestli existují prvky cesty. Tato rutina vrátí $true
, pokud je syntaxe cesty platná a $false
pokud ne. Pokud testovaná cesta obsahuje specifikaci jednotky, rutina vrátí hodnotu false, pokud jednotka neexistuje. PowerShell vrátí hodnotu false, protože neví, který zprostředkovatele jednotek se má testovat.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-LiteralPath
Určuje cestu, která se má testovat. Na rozdíl od cesty se hodnota parametru LiteralPath používá přesně tak, jak je zadána. Žádné znaky nejsou interpretovány jako zástupné znaky. Pokud cesta obsahuje znaky, které by powershell mohl interpretovat jako řídicí sekvence, musíte cestu uzavřít do jednoduchých uvozovek, aby se interpretovaly.
Type: | String[] |
Aliases: | PSPath |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-NewerThan
Jedná se o dynamický parametr, který zpřístupnil zprostředkovatel FileSystem .
Zadejte čas jako objekt DateTime .
Před PowerShellem 7.5 se rutina ignoruje:
- Tento parametr při zadání PathType jako jakékoli jiné hodnoty než
Any
. - Parametr OlderThan při použití s tímto parametrem.
- Tento parametr, když cesta odkazuje na adresář.
Počínaje PowerShellem 7.5 můžete použít tento parametr s libovolnou hodnotou parametru PathType , otestovat rozsah dat pomocí parametru OlderThan a otestovat věk adresářů.
Další informace najdete v tématu about_FileSystem_Provider.
Type: | Nullable<T>[[DateTime]] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-OlderThan
Jedná se o dynamický parametr, který zpřístupnil zprostředkovatel FileSystem .
Zadejte čas jako objekt DateTime .
Před PowerShellem 7.5 se rutina ignoruje:
- Tento parametr při zadání PathType jako jakékoli jiné hodnoty než
Any
. - Tento parametr při použití s parametrem NewerThan .
- Tento parametr, když cesta odkazuje na adresář.
Počínaje PowerShellem 7.5 můžete použít tento parametr s libovolnou hodnotou parametru PathType , otestovat rozsah dat pomocí parametru NewerThan a otestovat věk adresářů.
Další informace najdete v tématu about_FileSystem_Provider.
Type: | Nullable<T>[[DateTime]] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Path
Určuje cestu, která se má testovat. Jsou povoleny zástupné znaky. Pokud cesta obsahuje mezery, uzavřete ji do uvozovek.
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-PathType
Určuje typ konečného prvku v cestě. Tato rutina vrátí $true
, pokud je prvek zadaného typu a $false
pokud ne. Tento parametr přijímá tyto hodnoty:
Container
– Prvek, který obsahuje další prvky, například adresář nebo klíč registru.Leaf
– Prvek, který neobsahuje jiné prvky, například soubor.Any
- Buď kontejner, nebo list.
Určuje, zda poslední prvek v cestě je určitého typu.
Upozornění
Až PowerShell verze 6.1.2, když jsou přepínače IsValid a PathType zadány společně, Test-Path
rutina ignoruje přepínač PathType a ověří pouze syntaktickou cestu bez ověření typu cesty.
V závislosti na problému č. 8607 může být oprava tohoto chování zásadní změnou v budoucí verzi, kdy přepínače IsValid a PathType patří do samostatných sad parametrů, a proto není možné toto zmatení použít společně.
Type: | TestPathType |
Aliases: | Type |
Accepted values: | Any, Container, Leaf |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UseTransaction
Zahrnuje příkaz v aktivní transakci. Tento parametr je platný pouze v případě, že probíhá transakce. Další informace najdete v tématu about_Transactions
Type: | SwitchParameter |
Aliases: | usetx |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Vstupy
Řetězec, který obsahuje cestu, ale ne literálovou cestu, můžete do této rutiny převést.
Výstupy
Rutina vrátí logickou hodnotu.
Poznámky
Rutiny, které obsahují podstatné jméno cesty ( rutiny Path ), pracují s cestou a vracejí názvy ve stručné podobě, které můžou interpretovat všichni poskytovatelé PowerShellu. Jsou určené pro použití v programech a skriptech, ve kterých chcete zobrazit celou cestu nebo její část v určitém formátu. Použijte je stejně, jako byste použili Dirname, Normpath, Realpath, Join nebo jiné manipulátory cest.
Tato Test-Path
funkce je navržená tak, aby fungovala s daty vystavenými jakýmkoli poskytovatelem. Pokud chcete zobrazit seznam poskytovatelů dostupných v relaci, zadejte Get-PSProvider
. Další informace najdete v tématu about_Providers.
Související odkazy
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro