Test-Path

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

Syntax

Path (Varsayılan)

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

LiteralPath

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

Description

Test-Path cmdlet'i, yolun tüm öğelerinin var olup olmadığını belirler. Tüm öğeler mevcutsa $True, eksik olan varsa $False döndürür. 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ş bir dize ise, döndürülür$False. Yol, dizisi $null veya boş dizi ise$null, sonlandırılmayan bir hata döndürülür.

Örnekler

Örnek 1: Yolu test edin

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

Bu komut, yoldaki tüm öğelerin, yani dizinin, C: dizinin Documents and Settings ve dizinin DavidC var olup olmadığını denetler. Eğer herhangi bir şey eksikse, cmdlet $Falsedöndürür. 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 eder.

İ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 $False'dır, ancak söz dizimi $Truedoğrudur. Bu komutlar, profil mevcut olmasa bile profilin konumuna işaret eden otomatik değişken $profilekullanır.

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.

Komut, yolu belirtmek için Path parametresini kullanır. Boşluk içerdiği için bağlam tırnak işaretleri 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 atlanacak dosyaları belirtmek için Exclude parametresini belirtir.

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

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

Test-Path -Path $profile -PathType leaf
True

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

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

Bu komutlar PowerShell kayıt defteri sağlayıcısıyla Test-Path kullanır.

İlk komut, Microsoft.PowerShell kayıt defteri anahtarının kayıt defteri yolunun sistemde doğru olup olmadığını sınar. PowerShell doğru yüklenirse, cmdlet $Truedöndürür.

Önemli

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 Test-Path kullanabilirsiniz, 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 $Falsedöndürür.

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 "PowerShell.exe" dosyasının "13 Temmuz 2009"dan daha yeni 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

nulliçin, null dizisi veya boş dizi ile ilgili döndürülen hata, bitişsiz bir hatadır. -ErrorAction SilentlyContinuekullanılarak gizlenebilir. Aşağıdaki örnekte, NullPathNotPermitted hatasını döndüren tüm durumlar gösterilmektedir.

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, False döndürür. Bu, Windows PowerShell 5.1'den bir değişikliktir. Boş bir dize sağlandığında Test-Path bir hata döndürür. Aşağıdaki örnekte boşluk ve boş dize gösterilmektedir.

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

Parametreler

-Credential

Uyarı

Bu parametre, PowerShell ile yüklenen hiçbir sağlayıcı 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 hariç tuttuğu öğeleri belirtir. Bu parametrenin değeri, Path parametresini niteler. "*.txt" gibi 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. "*.txt" gibi 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 $True ve geçerli değilse $False döndürür.

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. Pathaksine, 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, yorumlanmalarını önlemek için yolu tek tırnak işareti 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

DateTime nesnesi olarak bir saat belirtin.

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

DateTime nesnesi olarak bir saat belirtin.

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. Dosya yolu boşluk içeriyorsa, tırnak işareti 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 $True ve değilse $False döndürür. Bu parametre için kabul edilebilir değerler şunlardır:

  • Konteyner. Dizin veya kayıt defteri anahtarı gibi diğer öğeleri içeren bir öğe.
  • Yaprak. Dosya gibi başka öğeler içermeyen bir öğe.
  • Herhangi biri Bir kapsayıcı veya yaprak.

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

Dikkat

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

#8607sorununa göre, bu davranışın düzeltilmesi, IsValid ve PathType anahtarlarının ayrı parametre kümelerine ait olduğu ve bu nedenle bu karışıklığı önleyerek birlikte kullanılamadığı bir sonraki 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ı içeren cmdlet'ler (Yolu cmdlet'leri) yol adlarıyla ç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 yol adının 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. Dirname, Normpath, Realpath, Joinveya 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.