Megosztás a következőn keresztül:


Test-Path

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

Syntax

Path (Alapértelmezett)

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

LiteralPath

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

Description

A Test-Path parancsmag határozza meg, hogy az elérési út minden eleme létezik-e. Visszaadja $True, ha az összes elem létezik, és ha hiányzik, $False. 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 a Path szóköz, akkor $False lesz visszaadva. Ha a Path egy üres sztring, $null, $null vagy üres tömb tömbje, a függvény 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, azaz a C: könyvtár, a Dokumentumok és beállítások könyvtár, valamint a DavidC könyvtár. Ha valamelyik hiányzik, a parancsmag $Falsead vissza. Ellenkező esetben $True-et ad vissza.

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 $False, de a szintaxis helyes $True. Ezek a parancsok $profile, az automatikus változót használják, amely a profil helyére mutat, 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 a Path 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 kihagyott fájlok megadásához.

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

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

Test-Path -Path $profile -PathType leaf
True

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

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

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

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

Fontos

Test-Path nem működik megfelelően az összes PowerShell-szolgáltatóval. Például használhatja a Test-Path-t egy beállításkulcs elérési útjának tesztelésére, de ha egy bejegyzés elérési útját teszteli, az mindig a $Falseértéket adja vissza, még akkor is, ha a bejegyzés létezik.

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étert használja annak megállapítására, hogy a számítógépen található "PowerShell.exe" fájl újabb-e, mint a "2009. július 13.".

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

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

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

A null, a null tömb vagy egy üres tömb esetében visszaadott hiba egy nem lezáruló hiba. A -ErrorAction SilentlyContinuehasználatával letiltható. Az alábbi példa az összes olyan esetet mutatja be, 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 üres szóköz vagy üres sztring van megadva a -Path paraméterhez, akkor hamis értéket ad vissza. Az alábbi példa a szóközt és az üres sztringet mutatja be.

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

Paraméterek

-Credential

Megjegyzés:

Ezt a paramétert a PowerShell-lel telepített szolgáltatók nem támogatják. Ha egy másik felhasználó szerepében szeretne fellépni, vagy emelni szeretné hitelesítő adatait a parancsmag futtatásakor, használja a Invoke-Command.

Paramétertulajdonságok

Típus:PSCredential
Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

(All)
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:True
Fennmaradó argumentumokból származó érték:False

-Exclude

Megadja azokat az elemeket, amelyeket ez a parancsmag kihagy. Ennek a paraméternek az értéke a 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.

Paramétertulajdonságok

Típus:

String[]

Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:True
DontShow:False

Paraméterkészletek

(All)
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-Filter

A szűrőt a szolgáltató formátumában vagy nyelvén adja meg. Ennek a paraméternek az értéke a 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ó azokat az objektumok lekérésekor alkalmazza ahelyett, hogy a PowerShell a lekérés után szűri az objektumokat.

Paramétertulajdonságok

Típus:String
Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:True
DontShow:False

Paraméterkészletek

(All)
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-Include

Megadja a parancsmag által tesztelt elérési utakat. Ennek a paraméternek az értéke a 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.

Paramétertulajdonságok

Típus:

String[]

Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:True
DontShow:False

Paraméterkészletek

(All)
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-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 $True ad vissza, ha az elérési út szintaxisa érvényes, és $False, ha nem.

Paramétertulajdonságok

Típus:SwitchParameter
Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

(All)
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték: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íráskor lesz használva. A rendszer egyetlen karaktert sem értelmez helyettesítő karakterként. Ha az elérési útvonal escape karaktereket tartalmaz, tedd azt egyes idézőjelek közé. Az egyes idézőjelek azt mondják a PowerShellnek, hogy egyetlen karaktert se értelmezzen escape szekvenciaként.

Paramétertulajdonságok

Típus:

String[]

Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False
Aliasok:PSPath

Paraméterkészletek

LiteralPath
Position:Named
Kötelező:True
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:True
Fennmaradó argumentumokból származó érték:False

-NewerThan

Adjon meg egy időpontot DateTime objektumként.

Paramétertulajdonságok

Típus:DateTime
Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

(All)
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-OlderThan

Adjon meg egy időpontot DateTime objektumként.

Paramétertulajdonságok

Típus:DateTime
Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

(All)
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték: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é.

Paramétertulajdonságok

Típus:

String[]

Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:True
DontShow:False

Paraméterkészletek

Path
Position:0
Kötelező:True
Folyamatból származó érték:True
Folyamatból származó érték tulajdonságnév alapján:True
Fennmaradó argumentumokból származó érték:False

-PathType

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

  • Konténer. Más elemeket, például könyvtárat vagy beállításkulcsot tartalmazó elem.
  • Levél. Olyan elem, amely nem tartalmaz más elemeket, például egy fájlt.
  • Bármely. Vagy egy tároló vagy egy levél.

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

Figyelmeztetés

A PowerShell 6.1.2-es verziójáig, amikor a IsValid és PathType kapcsolók együtt vannak 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-esprobléma szerint ennek a viselkedésnek a kijavítása egy későbbi verzió kompatibilitástörő változását okozhatja, ahol a IsValid és PathType kapcsolók külön paraméterkészletekhez tartoznak, és így nem használhatók együtt a félreértés elkerülése érdekében.

Paramétertulajdonságok

Típus:TestPathType
Alapértelmezett érték:None
Elfogadott értékek:Any, Container, Leaf
Támogatja a helyettesítő karaktereket:False
DontShow:False
Aliasok:Típus

Paraméterkészletek

(All)
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-UseTransaction

Tartalmazza a parancsot az aktív tranzakcióban. Ez a paraméter csak akkor érvényes, ha egy tranzakció folyamatban van. További információ: about_Transactions

Paramétertulajdonságok

Típus:SwitchParameter
Alapértelmezett érték:False
Támogatja a helyettesítő karaktereket:False
DontShow:False
Aliasok:usetx

Paraméterkészletek

(All)
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

CommonParameters

Ez a parancsmag a következő gyakori paramétereket támogatja: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction és -WarningVariable. További információért lásd about_CommonParameters.

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 egy logikai értéket ad vissza.

Jegyzetek

A Elérési út főnevét (az Elérési út parancsmagokat) tartalmazó parancsmagok az elérési utak neveivel dolgoznak, és a neveket tömör formátumban adja vissza, amelyet az összes PowerShell-szolgáltató értelmezni tud. Olyan programokban és szkriptekben való használatra készültek, amelyekben az elérési út nevének egy részét vagy egészét egy adott formátumban szeretné megjeleníteni. Használja őket úgy, mint a Dirname, Normpath, Realpath, Joinvagy más elérésiút-manipulátorokat.

A Test-Path úgy tervezték, 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 Get-PSProvider. További információért lásd a about_Providerscímű részt.