Test-Path
Avgör om alla element i en sökväg finns.
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>]
Description
Cmdleten Test-Path
avgör om alla element i sökvägen finns.
Den returnerar $True
om alla element finns och $False
om några saknas.
Den kan också se om sökvägssyntaxen är giltig och om sökvägen leder till en container eller ett terminal- eller lövelement.
Path
Om är tomt utrymme returneras det$False
.
Path
Om är en tom sträng, $null
, matris med $null
eller tom matris returneras ett icke-avslutande fel.
Exempel
Exempel 1: Testa en sökväg
Test-Path -Path "C:\Documents and Settings\DavidC"
True
Det här kommandot kontrollerar om alla element i sökvägen finns, d.v.s. katalogen C: , katalogen Dokument och inställningar och Katalogen DavidC.
Om några saknas returnerar $False
cmdleten .
Annars returneras $True
.
Exempel 2: Testa sökvägen till en profil
Test-Path -Path $profile
False
Test-Path -Path $profile -IsValid
True
Dessa kommandon testar sökvägen till PowerShell-profilen.
Det första kommandot avgör om alla element i sökvägen finns.
Det andra kommandot avgör om sökvägens syntax är korrekt.
I det här fallet är $False
sökvägen , men syntaxen är korrekt $True
.
Dessa kommandon använder $profile
, den automatiska variabeln som pekar på platsen för profilen, även om profilen inte finns.
Mer information om automatiska variabler finns i about_Automatic_Variables.
Exempel 3: Kontrollera om det finns några filer förutom en angiven typ
Test-Path -Path "C:\CAD\Commercial Buildings\*" -Exclude *.dwg
False
Det här kommandot kontrollerar om det finns några filer i katalogen Kommersiella byggnader förutom .dwg filer.
Kommandot använder parametern Path för att ange sökvägen. Eftersom sökvägen innehåller ett blanksteg omges sökvägen av citattecken. Asterisken i slutet av sökvägen anger innehållet i katalogen Commercial Building. Med långa sökvägar, till exempel den här, skriver du de första bokstäverna i sökvägen och använder sedan TABB-tangenten för att slutföra sökvägen.
Kommandot anger parametern Exkludera för att ange filer som ska utelämnas från utvärderingen.
I det här fallet, eftersom katalogen bara innehåller .dwg filer, är $False
resultatet .
Exempel 4: Sök efter en fil
Test-Path -Path $profile -PathType leaf
True
Det här kommandot kontrollerar om sökvägen som lagras i variabeln $profile
leder till en fil.
I det här fallet, eftersom PowerShell-profilen är en .ps1
fil, returnerar $True
cmdleten .
Exempel 5: Kontrollera sökvägar i registret
Dessa kommandon används Test-Path
med PowerShell-registerprovidern.
Det första kommandot testar om registersökvägen för Microsoft.PowerShell-registernyckeln är korrekt i systemet.
Om PowerShell är korrekt installerat returnerar $True
cmdleten .
Viktigt
Test-Path
fungerar inte korrekt med alla PowerShell-leverantörer.
Du kan till exempel använda Test-Path
för att testa sökvägen till en registernyckel, men om du använder den för att testa sökvägen för en registerpost returneras $False
alltid , även om registerposten finns.
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
Exempel 6: Testa om en fil är nyare än ett angivet datum
Det här kommandot använder den dynamiska parametern NewerThan för att avgöra om filen "PowerShell.exe" på datorn är nyare än "13 juli 2009".
Parametern NewerThan fungerar bara på filsystemenheter.
Test-Path $pshome\PowerShell.exe -NewerThan "July 13, 2009"
True
Exempel 7: Testa en sökväg med null som värde
Felet som returneras för null
, matrisen med null
eller den tomma matrisen är ett icke-avslutande fel.
Det kan ignoreras med hjälp -ErrorAction SilentlyContinue
av .
I följande exempel visas alla fall som returnerar NullPathNotPermitted
felet.
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
Exempel 8: Testa en sökväg med blanksteg som värde
När ett tomt utrymme är eller en tom sträng som anges för parametern -Path
returneras falskt.
I följande exempel visas blanksteg och tom sträng.
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
Parametrar
-Credential
Anteckning
Den här parametern stöds inte av några leverantörer som är installerade med PowerShell. Om du vill personifiera en annan användare eller höja dina autentiseringsuppgifter när du kör den här cmdleten använder du Invoke-Command.
Type: | PSCredential |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Exclude
Anger objekt som cmdleten utelämnar. Värdet för den här parametern kvalificerar parametern Path . Ange ett sökvägselement eller mönster, till exempel "*.txt". Jokertecken tillåts.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Filter
Anger ett filter i providerns format eller språk. Värdet för den här parametern kvalificerar parametern Path . Syntaxen för filtret, inklusive användningen av jokertecken, beror på providern. Filter är mer effektiva än andra parametrar eftersom providern tillämpar dem när de hämtar objekten i stället för att Låta PowerShell filtrera objekten när de har hämtats.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Include
Anger sökvägar som den här cmdleten testar. Värdet för den här parametern kvalificerar parametern Path . Ange ett sökvägselement eller mönster, till exempel "*.txt". Jokertecken tillåts.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-IsValid
Anger att denna cmdlet testar sökvägens syntax, oavsett om elementen i sökvägen finns.
Den här cmdleten returnerar $True
om sökvägssyntaxen är giltig och $False
om den inte är det.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-LiteralPath
Anger en sökväg som ska testas. Till skillnad från Path används värdet för parametern LiteralPath exakt som det skrivs. Inga tecken tolkas som jokertecken. Om sökvägen innehåller escape-tecken omger du den inom enkla citattecken. Enkla citattecken säger till PowerShell att inte tolka några tecken som escape-sekvenser.
Type: | String[] |
Aliases: | PSPath |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-NewerThan
Ange en tid som ett DateTime-objekt .
Type: | DateTime |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-OlderThan
Ange en tid som ett DateTime-objekt .
Type: | DateTime |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Path
Anger en sökväg som ska testas. Jokertecken tillåts. Om sökvägen innehåller blanksteg omger du den inom citattecken.
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-PathType
Anger typen av det sista elementet i sökvägen.
Den här cmdleten returnerar $True
om elementet är av den angivna typen och $False
om det inte är det.
De acceptabla värdena för den här parametern är:
- Behållare. Ett element som innehåller andra element, till exempel en katalog eller registernyckel.
- Blad. Ett element som inte innehåller andra element, till exempel en fil.
- Någon. Antingen en container eller ett löv.
Anger om det sista elementet i sökvägen är av en viss typ.
Varning
Fram till PowerShell version 6.1.2 ignorerar cmdleten Test-Path
PathType-växeln och validerar endast den syntaktiska sökvägen utan att verifiera sökvägstypen när växlarna IsValid och PathType anges tillsammans.
Enligt problemet #8607 kan det här beteendet vara en icke-bakåtkompatibel ändring i en framtida version, där växlarna IsValid och PathType tillhör separata parameteruppsättningar och därför inte kan användas tillsammans för att undvika den här förvirringen.
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
Inkluderar kommandot i den aktiva transaktionen. Den här parametern är bara giltig medan en transaktion pågår. Mer information finns i about_Transactions
Type: | SwitchParameter |
Aliases: | usetx |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Indata
Du kan skicka en sträng som innehåller en sökväg, men inte en literal sökväg, till den här cmdleten.
Utdata
Cmdleten returnerar ett booleskt värde.
Kommentarer
Cmdletarna som innehåller path-substantivet (path-cmdletarna) fungerar med sökvägsnamn och returnerar namnen i ett kortfattat format som alla PowerShell-leverantörer kan tolka. De är utformade för användning i program och skript där du vill visa hela eller delar av ett sökvägsnamn i ett visst format. Använd dem som du skulle använda Dirname, Normpath, Realpath, Join eller andra sökvägsmanipulatörer.
Test-Path
Är utformad för att fungera med data som exponeras av alla leverantörer.
Om du vill visa en lista över de leverantörer som är tillgängliga i sessionen skriver du Get-PSProvider
.
Mer information finns i about_Providers.