Test-Path

Bir yolun tüm öğelerinin mevcut olup olmadığını belirler.

Syntax

Path (Default) - FileSystem provider

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

LiteralPath - FileSystem provider

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

Path (Default) - All providers

Test-Path
    [-Path] <string[]>
    [-Filter <string>]
    [-Include <string[]>]
    [-Exclude <string[]>]
    [-PathType <TestPathType>]
    [-IsValid]
    [-Credential <pscredential>]
    [<CommonParameters>]

LiteralPath - All providers

Test-Path
    -LiteralPath <string[]>
    [-Filter <string>]
    [-Include <string[]>]
    [-Exclude <string[]>]
    [-PathType <TestPathType>]
    [-IsValid]
    [-Credential <pscredential>]
    [<CommonParameters>]

Description

Cmdlet, Test-Path yolun tüm öğelerinin var olup olmadığını belirler. Tüm öğeler varsa ve $true eksikse döndürür$false. Ayrıca, yol söz diziminin geçerli olup olmadığını ve yolun bir kapsayıcıya mı, terminale mi yoksa yaprak öğeye mi yol açtığını da anlayabilir. Yol bir boşluk veya boş dizeyse, cmdlet'i döndürür$false. Path bir dizi veya boş bir dizi $null ise$null, cmdlet sonlandırılmayan bir hata döndürür.

Örnekler

Örnek 1: Yolu test edin

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

Bu komut, dizin, dizin ve C: dizin Documents and Settings de dahil olmak üzere DavidC yoldaki tüm öğelerin mevcut olup olmadığını denetler. Eksik cmdlet'i döndürür $false. Aksi takdirde $truedeğerini döndürür.

Örnek 2: Profilin yolunu test edin

Test-Path -Path $PROFILE
False
Test-Path -Path $PROFILE -IsValid
True

Bu komutlar PowerShell profilinin yolunu test edin.

İlk komut, yoldaki tüm öğelerin mevcut olup olmadığını belirler. İkinci komut, yolun söz diziminin doğru olup olmadığını belirler. Bu durumda, yol şeklindedir $false, ancak söz dizimi doğrudur $true. Bu komutlar, profil mevcut olmasa bile profilin konumuna işaret eden otomatik değişkeni kullanır $PROFILE.

Otomatik değişkenler hakkında daha fazla bilgi için bkz. about_Automatic_Variables.

Örnek 3: Belirtilen tür dışında herhangi bir dosya olup olmadığını denetleyin

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

Bu komut, Ticari Binalar dizininde .dwg dosya dışında herhangi bir dosya olup olmadığını denetler.

komutu yolu belirtmek için Path parametresini kullanır. Yol bir boşluk içerdiğinden, yol tırnak içine alınır. Yolun sonundaki yıldız işareti, Ticari Yapı dizininin içeriğini gösterir. Bunun gibi uzun yollarla, yolun ilk birkaç harfini yazın ve ardından yolu tamamlamak için SEKME tuşunu kullanın.

komutu, değerlendirmeden çıkarılacak dosyaları belirtmek için Exclude parametresini belirtir.

Bu durumda dizin yalnızca .dwg dosyaları içerdiğinden sonuç olur $false.

Örnek 4: Dosya olup olmadığını denetleme

Test-Path -Path $PROFILE -PathType Leaf
True

Bu komut, değişkende depolanan yolun bir dosyaya $PROFILE yol açıp açmadığını denetler. Bu durumda, PowerShell profili bir .ps1 dosya olduğundan cmdlet döndürür $true.

Örnek 5: Kayıt Defteri'nde yolları denetleme

Bu komutlar PowerShell Kayıt Defteri sağlayıcısıyla birlikte kullanılır Test-Path .

İlk komut, Microsoft kayıt defteri yolunun olup olmadığını sınar. PowerShell kayıt defteri anahtarı sistemde doğru. PowerShell doğru yüklenmişse cmdlet'i döndürür $true.

Important

Test-Path tüm PowerShell sağlayıcılarıyla düzgün çalışmıyor. Örneğin, bir kayıt defteri anahtarının yolunu test etmek için kullanabilirsiniz Test-Path , ancak bunu bir kayıt defteri girdisinin yolunu test etmek için kullanırsanız, kayıt defteri girişi mevcut olsa bile her zaman döndürür $false.

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

Örnek 6: Bir dosyanın belirtilen tarihten daha yeni olup olmadığını test edin

Bu komut, bilgisayardaki dosyanın değerinden pwsh.exeJuly 13, 2009yeni olup olmadığını belirlemek için NewerThan dinamik parametresini kullanır.

NewerThan parametresi yalnızca dosya sistemi sürücülerinde çalışır.

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

Örnek 7: Değeri null olan bir yolu test edin

için nulldöndürülen hata, null veya boş dizi dizisi sonlandırılmayan bir hatadır. kullanılarak -ErrorAction SilentlyContinuegizlenebilir. Aşağıdaki örnekte hata döndüren tüm durumlar gösterilmektedir NullPathNotPermitted .

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

Örnek 8: Bir yolu değer olarak boşlukla test edin

Path parametresi için bir boşluk dizesi sağlandığında, döndürür$false. Bu, PowerShell 5.1 Windows bir değişikliktir. Boş bir dize sağlandığında bir Test-Path hata döndürür. Aşağıdaki örnekte boşluk ve boş dize gösterilmektedir.

Test-Path ' '
Test-Path ''
False
False

Örnek 9: Geçersiz sürücüye sahip olabilecek bir yolu test edin

Sürücü belirtimi içeren bir yolu test ettiğinizde, sürücü yoksa yolun geçerliliğini test etme başarısız olur. Bu soruna geçici bir çözüm olarak sürücüye sağlayıcı adı ön eki ekleyebilirsiniz.

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

Parametreler

-Credential

Uyarı

Bu parametre, PowerShell ile yüklenen sağlayıcılar tarafından desteklenmez. Başka bir kullanıcının kimliğine bürünmek veya bu cmdlet'i çalıştırırken kimlik bilgilerinizi yükseltmek için Invoke-Commandkullanın.

Parametre özellikleri

Tür:PSCredential
Default value:None
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:True
Kalan bağımsız değişkenlerden elde edilen değer:False

-Exclude

Bu cmdlet'in atlayan öğeleri belirtir. Bu parametrenin değeri, Path parametresini niteler. *.txtgibi bir yol öğesi veya deseni girin. Joker karakterlere izin verilir.

Parametre özellikleri

Tür:

String[]

Default value:None
Joker karakterleri destekler:True
DontShow:False

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-Filter

Sağlayıcının biçiminde veya dilinde bir filtre belirtir. Bu parametrenin değeri, Path parametresini niteler. Joker karakterlerin kullanımı da dahil olmak üzere filtrenin söz dizimi sağlayıcıya bağlıdır. Sağlayıcı, nesneleri aldıktan sonra PowerShell'in filtrelemesini yapmak yerine nesneleri aldığında filtreler diğer parametrelerden daha verimlidir.

Parametre özellikleri

Tür:String
Default value:None
Joker karakterleri destekler:True
DontShow:False

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-Include

Bu cmdlet'in test yaptığı yolları belirtir. Bu parametrenin değeri, Path parametresini niteler. *.txtgibi bir yol öğesi veya deseni girin. Joker karakterlere izin verilir.

Parametre özellikleri

Tür:

String[]

Default value:None
Joker karakterleri destekler:True
DontShow:False

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-IsValid

Bu cmdlet'in, yolun öğelerinin var olup olmadığına bakılmaksızın yolun söz dizimini test ettiğini gösterir. Bu cmdlet, yol söz dizimi geçerliyse ve $true geçerli değilse döndürür$false. Test edilen yol bir sürücü belirtimi içeriyorsa, sürücü mevcut olmadığında cmdlet false döndürür. PowerShell, test etmek için hangi sürücü sağlayıcısını bilmediği için false döndürür.

Uyarı

Yol API'lerinde hataya neden olan bir değişiklik .NET 2.1'de kullanıma sunulmuştur. Bu yöntemler artık geçersiz yol karakterlerini denetlemez. Bu değişiklik, PowerShell'de IsValid denetiminin artık geçersiz karakterler için sınanmamasına neden olan bir regresyona neden oldu. Regresyon, gelecek bir sürümde ele alınacaktır. Daha fazla bilgi için bkz. .NET Core 2.1 Breaking changes in >.

Parametre özellikleri

Tür:SwitchParameter
Default value:None
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-LiteralPath

Test edilecek yolu belirtir. Path'in aksine, LiteralPath parametresinin değeri tam olarak yazıldığı gibi kullanılır. Hiçbir karakter joker karakter olarak yorumlanmamıştır. Yol, PowerShell tarafından kaçış dizileri olarak yorumlanabilir karakterler içeriyorsa, yolu yorumlanmamış olmaları için tek tırnak içine almanız gerekir.

Parametre özellikleri

Tür:

String[]

Default value:None
Joker karakterleri destekler:False
DontShow:False
Diğer adlar:PSPath, LP

Parametre kümeleri

LiteralPath
Position:Named
Zorunlu:True
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:True
Kalan bağımsız değişkenlerden elde edilen değer:False

-NewerThan

Bu, FileSystem sağlayıcısı tarafından sağlanan dinamik bir parametredir.

DateTime nesnesi olarak bir saat belirtin.

PowerShell 7.5'in öncesinde cmdlet şunları yoksayar:

  • PathType değerini dışında Anybir değer olarak belirttiğinizde bu parametre.
  • Bu parametreyle kullanıldığında OlderThan parametresi.
  • Path bir dizine işaret ettiğinde bu parametre.

PowerShell 7.5'den başlayarak, bu parametreyi PathType parametresi için herhangi bir değerle kullanabilir, Bir tarih aralığını OlderThan parametresiyle test edebilir ve dizinlerin yaşını test edebilirsiniz.

Daha fazla bilgi için bkz. about_FileSystem_Provider.

Parametre özellikleri

Tür:

Nullable<T>[[DateTime]]

Default value:None
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-OlderThan

Bu, FileSystem sağlayıcısı tarafından sağlanan dinamik bir parametredir.

DateTime nesnesi olarak bir saat belirtin.

PowerShell 7.5'in öncesinde cmdlet şunları yoksayar:

  • PathType değerini dışında Anybir değer olarak belirttiğinizde bu parametre.
  • NewerThan parametresiyle kullanıldığında bu parametre.
  • Path bir dizine işaret ettiğinde bu parametre.

PowerShell 7.5'den başlayarak, bu parametreyi PathType parametresi için herhangi bir değerle kullanabilir, NewerThan parametresiyle bir tarih aralığını test edebilir ve dizinlerin yaşını test edebilirsiniz.

Daha fazla bilgi için bkz. about_FileSystem_Provider.

Parametre özellikleri

Tür:

Nullable<T>[[DateTime]]

Default value:None
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-Path

Test edilecek yolu belirtir. Joker karakterlere izin verilir. Yol boşluk içeriyorsa, tırnak içine alın.

Parametre özellikleri

Tür:

String[]

Default value:None
Joker karakterleri destekler:True
DontShow:False

Parametre kümeleri

Path
Position:0
Zorunlu:True
İşlem hattından gelen değer:True
Özellik adına göre işlem hattından gelen değer:True
Kalan bağımsız değişkenlerden elde edilen değer:False

-PathType

Yoldaki son öğenin türünü belirtir. Bu cmdlet, öğe belirtilen türdeyse ve $true değilse döndürür$false. Bu parametre için kabul edilebilir değerler şunlardır:

  • Container - Dizin veya kayıt defteri anahtarı gibi diğer öğeleri içeren bir öğe.
  • Leaf - Dosya gibi başka öğeler içermeyen bir öğe.
  • Any - Bir kapsayıcı veya yaprak.

Yoldaki son öğenin belirli bir türe ait olup olmadığını bildirir.

Caution

PowerShell sürüm 6.1.2'ye kadar , IsValid ve PathType anahtarları birlikte belirtildiğinde Test-Path , cmdlet PathType anahtarını yoksayar ve yol türünü doğrulamadan yalnızca bozulmamış yolu doğrular.

Sorun #8607'ye göre, bu davranışı düzeltmek, IsValid ve PathType anahtarlarının ayrı parametre kümelerine ait olduğu ve bu nedenle bu karışıklığı önlemek için birlikte kullanılamadığı gelecek bir sürümde hataya neden olan bir değişiklik olabilir.

Parametre özellikleri

Tür:TestPathType
Default value:None
Kabul edilen değerler:Any, Container, Leaf
Joker karakterleri destekler:False
DontShow:False
Diğer adlar:Türü

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

CommonParameters

Bu cmdlet yaygın parametreleri destekler: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction ve -WarningVariable. Daha fazla bilgi için bkz. about_CommonParameters.

Girişler

String

Bu cmdlet'e bir yol içeren ancak kelime anlamıyla bir yol olmayan bir dize aktarabilirsiniz.

Çıkışlar

Boolean

Cmdlet bir Boole değeri döndürür.

Notlar

Yol adını (Yol cmdlet'leri) içeren cmdlet'ler yol ile çalışır ve adları tüm PowerShell sağlayıcılarının yorumlayabildiği kısa bir biçimde döndürür. Bir yolun tamamını veya bir bölümünü belirli bir biçimde görüntülemek istediğiniz programlarda ve betiklerde kullanılmak üzere tasarlanmıştır. Bunları Dirname, Normpath, Realpath, Join veya diğer yol manipülatörlerini kullandığınız gibi kullanın.

Test-Path, herhangi bir sağlayıcı tarafından kullanıma sunulan verilerle çalışacak şekilde tasarlanmıştır. Oturumunuzda kullanılabilen sağlayıcıları listelemek için Get-PSProvideryazın. Daha fazla bilgi için bkz. about_Providers.