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, $false
de 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, 2009
a .
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 null
hiba nem végződő hiba. A funkcióval -ErrorAction SilentlyContinue
letiltható. 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
Any
adja 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
Any
adja 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
Ehhez a parancsmaghoz egy elérési utat tartalmazó, de nem literális elérési utat tartalmazó sztringet csövezhet.
Kimenetek
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.
Kapcsolódó hivatkozások
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: