Test-Path

Meghatározza, hogy az elérési út minden eleme létezik-e.

Syntax

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>]
Test-Path
    [-Path] <string[]>
    [-Filter <string>]
    [-Include <string[]>]
    [-Exclude <string[]>]
    [-PathType <TestPathType>]
    [-IsValid]
    [-Credential <pscredential>]
    [<CommonParameters>]
Test-Path
    -LiteralPath <string[]>
    [-Filter <string>]
    [-Include <string[]>]
    [-Exclude <string[]>]
    [-PathType <TestPathType>]
    [-IsValid]
    [-Credential <pscredential>]
    [<CommonParameters>]

Description

A Test-Path parancsmag meghatározza, hogy az elérési út minden eleme létezik-e. Visszaadja, $true ha az összes elem létezik, és $false ha hiányzik valamelyik. Azt is meg tudja állapítani, hogy az elérési út szintaxisa érvényes-e, és hogy az elérési út tárolóhoz, terminálhoz vagy levélelemhez vezet-e. Ha az elérési út egy üres szóköz vagy üres sztring, akkor a parancsmag visszaadja a parancsmagot $false. Ha az elérési út $null egy tömb $null vagy egy üres tömb, a parancsmag nem végződő hibát ad vissza.

Példák

1. példa: Elérési út tesztelése

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

True

Ez a parancs ellenőrzi, hogy az elérési út összes eleme létezik-e, beleértve a C: könyvtárat, a Documents and Settings könyvtárat és a könyvtárat DavidC . Ha valamelyik hiányzik, a parancsmag ad vissza $false. Ellenkező esetben a visszaadott $trueérték.

2. példa: Profil elérési útjának tesztelése

Test-Path -Path $profile

False

Test-Path -Path $profile -IsValid

True

Ezek a parancsok tesztelik a PowerShell-profil elérési útját.

Az első parancs határozza meg, hogy az elérési út összes eleme létezik-e. A második parancs határozza meg, hogy az elérési út szintaxisa helyes-e. Ebben az esetben az elérési út, $falsede a szintaxis helyes $true. Ezek a parancsok a profil helyére mutató automatikus változót használják $profile, még akkor is, ha a profil nem létezik.

Az automatikus változókkal kapcsolatos további információkért lásd: about_Automatic_Variables.

3. példa: Ellenőrizze, hogy vannak-e fájlok a megadott típuson kívül

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

False

Ez a parancs ellenőrzi, hogy vannak-e olyan fájlok a Kereskedelmi épületek könyvtárban, amelyek nem .dwg fájlok.

A parancs az Elérési út paramétert használja az elérési út megadásához. Mivel az elérési út szóközt tartalmaz, az elérési út idézőjelek közé kerül. Az útvonal végén lévő csillag a Kereskedelmi épület könyvtár tartalmát jelzi. Ha hosszú elérési utakat használ, például ezt, írja be az elérési út első néhány betűét, majd a TAB billentyűvel fejezze be az elérési utat.

A parancs megadja a Kizárás paramétert a kiértékelésből kihagyandó fájlok megadásához.

Ebben az esetben, mivel a könyvtár csak .dwg fájlokat tartalmaz, az eredmény az .$false

4. példa: Fájl keresése

Test-Path -Path $profile -PathType leaf

True

Ez a parancs ellenőrzi, hogy a változóban $profile tárolt elérési út egy fájlhoz vezet-e. Ebben az esetben, mivel a PowerShell-profil egy .ps1 fájl, a parancsmag ad vissza $true.

5. példa: Elérési utak ellenőrzése a beállításjegyzékben

Ezek a parancsok a PowerShell beállításjegyzék-szolgáltatójával használhatók Test-Path .

Az első parancs ellenőrzi, hogy a Microsoft.PowerShell beállításkulcs elérési útja helyes-e a rendszeren. Ha a PowerShell megfelelően van telepítve, a parancsmag ad vissza $true.

Fontos

Test-Path nem működik megfelelően az összes PowerShell-szolgáltatóval. Használhatja például Test-Path egy beállításkulcs elérési útját, de ha egy beállításjegyzék-bejegyzés elérési útját teszteli, az mindig visszatér $false, még akkor is, ha a beállításjegyzék-bejegyzés jelen van.

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. példa: Annak tesztelése, hogy egy fájl újabb-e egy megadott dátumnál

Ez a parancs a NewerThan dinamikus paraméter használatával határozza meg, hogy a pwsh.exe számítógépen lévő fájl újabb-e, mint July 13, 2009a .

A NewerThan paraméter csak fájlrendszer-meghajtókon működik.

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

True

7. példa: Értékként null értékű elérési út tesztelése

Az , tömb vagy üres tömb null esetében visszaadott nullhiba nem végződő hiba. A funkcióval -ErrorAction SilentlyContinueletiltható. Az alábbi példában az összes olyan eset látható, amely a NullPathNotPermitted hibát adja vissza.

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. példa: Elérési út tesztelése üres térrel értékként

Ha egy szóközsztring van megadva az Elérési út paraméterhez, az visszaadja $false. Ez egy változás a Windows PowerShell 5.1-ről. Ha üres sztringet ad meg, Test-Path hibát ad vissza. Az alábbi példa a szóközt és az üres sztringet mutatja be.

Test-Path ' '
Test-Path ''

False
False

9. példa: Érvénytelen meghajtóval rendelkező elérési út tesztelése

Ha egy meghajtó specifikációját tartalmazó elérési utat tesztel, az elérési út érvényességének tesztelése sikertelen lesz, ha a meghajtó nem létezik. A probléma megoldásához előtaggal adhatja meg a meghajtót a szolgáltató nevével.

Test-Path -IsValid Z:\abc.txt
Test-Path -IsValid FileSystem::Z:\abc.txt

False
True

Paraméterek

-Credential

Feljegyzés

Ezt a paramétert a PowerShell-lel telepített szolgáltatók nem támogatják. Ha megszemélyesíteni szeretne egy másik felhasználót, vagy a parancsmag futtatásakor emeli a hitelesítő adatait, használja az Invoke-Command parancsot.

Type:PSCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Exclude

Megadja azokat az elemeket, amelyeket ez a parancsmag kihagy. Ennek a paraméternek az értéke az Elérési út paramétert minősíti. Adjon meg egy elérési út elemet vagy mintát, például *.txt. A helyettesítő karakterek használata engedélyezett.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-Filter

A szűrőt a szolgáltató formátumában vagy nyelvén adja meg. Ennek a paraméternek az értéke az Elérési út paramétert minősíti. A szűrő szintaxisa, beleértve a helyettesítő karakterek használatát is, a szolgáltatótól függ. A szűrők hatékonyabbak, mint a többi paraméter, mivel a szolgáltató akkor alkalmazza őket, amikor lekéri az objektumokat ahelyett, hogy a PowerShell a lekérésük után szűri az objektumokat.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-Include

Megadja a parancsmag által tesztelt elérési utakat. Ennek a paraméternek az értéke az Elérési út paramétert minősíti. Adjon meg egy elérési út elemet vagy mintát, például *.txt. A helyettesítő karakterek használata engedélyezett.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-IsValid

Azt jelzi, hogy ez a parancsmag teszteli az elérési út szintaxisát, függetlenül attól, hogy az elérési út elemei léteznek-e. Ez a parancsmag akkor ad vissza $true , ha az elérési út szintaxisa érvényes, és $false ha nem. Ha a tesztelt elérési út tartalmaz egy meghajtó specifikációt, a parancsmag hamis értéket ad vissza, ha a meghajtó nem létezik. A PowerShell hamis értéket ad vissza, mert nem tudja, melyik meghajtószolgáltatót tesztelje.

Feljegyzés

A Path API-k kompatibilitástörő változását vezettük be a .NET 2.1-ben. Ezek a metódusok már nem ellenőrzik az érvénytelen elérési utak karaktereit. Ez a módosítás regressziót okozott a PowerShellben, ahol az IsValid-ellenőrzés már nem teszteli az érvénytelen karaktereket. A regresszió egy későbbi kiadásban lesz kezelve. További információ: A .NET Core 2.1 kompatibilitástörő változásai.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-LiteralPath

A tesztelni kívánt elérési utat adja meg. A Path-tal ellentétben a LiteralPath paraméter értéke pontosan a beírt módon lesz használva. A rendszer egyetlen karaktert sem értelmez helyettesítő karakterként. Ha az elérési út olyan karaktereket tartalmaz, amelyeket a PowerShell feloldósorozatként értelmezhet, az elérési utat egyetlen idézőjelbe kell csatolnia, hogy azok ne legyenek értelmezve.

Type:String[]
Aliases:PSPath, LP
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-NewerThan

Ez a fájlrendszer-szolgáltató által elérhetővé tett dinamikus paraméter.

Adjon meg egy időpontot DateTime-objektumként.

A PowerShell 7.5 előtt a parancsmag figyelmen kívül hagyja a következőt:

  • Ez a paraméter akkor jelenik meg, ha a PathType értéket nem értékként Anyadja meg.
  • A OlderThan paramétert használja ezzel a paraméterrel.
  • Ez a paraméter, amikor az Elérési út egy könyvtárra mutat.

A PowerShell 7.5-től kezdve ezt a paramétert használhatja a PathType paraméter bármely értékével, tesztelhet egy dátumtartományt az OlderThan paraméterrel, és tesztelheti a könyvtárak korát.

További információ: about_FileSystem_Provider.

Type:Nullable<T>[[DateTime]]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-OlderThan

Ez a fájlrendszer-szolgáltató által elérhetővé tett dinamikus paraméter.

Adjon meg egy időpontot DateTime-objektumként.

A PowerShell 7.5 előtt a parancsmag figyelmen kívül hagyja a következőt:

  • Ez a paraméter akkor jelenik meg, ha a PathType értéket nem értékként Anyadja meg.
  • Ez a paraméter a NewerThan paraméterrel együtt használva.
  • Ez a paraméter, amikor az Elérési út egy könyvtárra mutat.

A PowerShell 7.5-től kezdve ezt a paramétert a PathType paraméter bármely értékével használhatja, tesztelhet egy dátumtartományt a NewerThan paraméterrel, és tesztelheti a könyvtárak korát.

További információ: about_FileSystem_Provider.

Type:Nullable<T>[[DateTime]]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Path

A tesztelni kívánt elérési utat adja meg. A helyettesítő karakterek használata engedélyezett. Ha az elérési út szóközöket tartalmaz, tegye idézőjelek közé.

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:True

-PathType

Megadja az elérési út utolsó elemének típusát. Ez a parancsmag akkor ad vissza, $true ha az elem a megadott típusú, és $false ha nem. A paraméter elfogadható értékei a következők:

  • Container - Olyan elem, amely más elemeket, például könyvtárat vagy beállításkulcsot tartalmaz.
  • Leaf – Olyan elem, amely nem tartalmaz más elemeket, például egy fájlt.
  • Any - Vagy egy tároló vagy egy levél.

Azt jelzi, hogy az elérési út utolsó eleme egy adott típusú-e.

Figyelemfelhívás

A PowerShell 6.1.2-es verziójáig, amikor az IsValid és a PathType kapcsoló együtt van megadva, a Test-Path parancsmag figyelmen kívül hagyja a PathType kapcsolót, és csak a szintaktikai útvonalat érvényesíti az elérési út típusának érvényesítése nélkül.

A 8607-es szám szerint ennek a viselkedésnek a kijavítása egy későbbi verzió kompatibilitástörő változását okozhatja, ahol az IsValid és a PathType kapcsolók külön paraméterkészletekhez tartoznak, ezért nem használhatók együtt, elkerülve ezzel a félreértést.

Type:TestPathType
Aliases:Type
Accepted values:Any, Container, Leaf
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Bevitelek

String

Ehhez a parancsmaghoz egy elérési utat tartalmazó, de nem literális elérési utat tartalmazó sztringet csövezhet.

Kimenetek

Boolean

A parancsmag logikai értéket ad vissza.

Jegyzetek

Az Elérési út főnevét (elérésiút-parancsmagokat) tartalmazó parancsmagok az elérési úttal dolgoznak, és a neveket tömör formátumban adják vissza, amelyet az összes PowerShell-szolgáltató értelmezni tud. Olyan programokhoz és szkriptekhez lettek kialakítva, amelyekben egy útvonal egészét vagy egy részét egy adott formátumban szeretné megjeleníteni. Használja őket Dirname, Normpath, Realpath, Join vagy más elérésiút-manipulátorok használataként.

Ez Test-Path úgy lett kialakítva, hogy bármely szolgáltató által közzétett adatokkal működjön együtt. A munkamenetben elérhető szolgáltatók listájához írja be a következőt Get-PSProvider: További információ: about_Providers.