Test-Path (Microsoft.PowerShell.Management)
Test-Path
- Modül:
- Microsoft.PowerShell.Management
Bir yolun tüm öğelerinin mevcut olup olmadığını belirler.
Sözdizimi
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>]Tanım
Test-Path cmdlet'i yolun tüm öğelerinin mevcut olup olmadığını belirler. Tüm öğeler mevcutsa $true, eksikse $false değerini döndürür. Ayrıca yol sözdiziminin geçerli olup olmadığını ve yolun bir konteynere mi, terminale mi yoksa yaprak öğesine mi gittiğini de söyleyebilir. Yol bir boşluk veya boş dize ise cmdlet $false değerini döndürür. Yol $null, $null dizisi veya boş bir dizi ise, cmdlet sonlandırılmayan bir hata döndürür.
Örnekler
Örnek 1: Yolu test etme
Test-Path -Path "C:\Documents and Settings\DavidC"
TrueBu komut, C: dizini, Belgeler ve Ayarlar dizini ve DavidC dizini dahil olmak üzere yoldaki tüm öğelerin var olup olmadığını kontrol eder. Herhangi biri eksikse cmdlet $false değerini döndürür. Aksi halde $true değerini döndürür.
Örnek 2: Bir profilin yolunu test edin
Test-Path -Path $profile
False
Test-Path -Path $profile -IsValid
TrueBu komutlar PowerShell profilinin yolunu test eder.
İlk komut, yoldaki tüm öğelerin mevcut olup olmadığını belirler. İkinci komut yolun sözdiziminin doğru olup olmadığını belirler. Bu durumda yol $false olur, ancak sözdizimi doğrudur $true. Bu komutlar, profil mevcut olmasa bile profilin konumunu gösteren otomatik değişken olan $profile'ı kullanır.
Otomatik değişkenler hakkında daha fazla bilgi için bkz. about_Automatic_Variables.
Örnek 3: Belirtilen türden başka dosya olup olmadığını kontrol edin
Test-Path -Path "C:\CAD\Commercial Buildings\*" -Exclude *.dwg
FalseBu komut Ticari Binalar dizininde .dwg dosyaları dışında herhangi bir dosya olup olmadığını kontrol eder.
Komut, yolu belirtmek için Yol parametresini kullanır. Yol bir boşluk içerdiğinden, yol tırnak işaretleri içine alınır. Yolun sonundaki yıldız işareti Ticari Bina dizininin içeriğini gösterir. Bunun gibi uzun yollarda yolun ilk birkaç harfini yazın ve ardından yolu tamamlamak için SEKME tuşunu kullanın.
Komut, değerlendirmeden çıkarılacak dosyaları belirtmek için Hariç Tut parametresini belirtir.
Bu durumda, dizin yalnızca .dwg dosyalarını içerdiğinden sonuç $false olur.
Örnek 4: Bir dosyayı kontrol edin
Test-Path -Path $profile -PathType leaf
TrueBu komut, $profile değişkeninde saklanan yolun bir dosyaya yol açıp açmadığını kontrol eder. Bu durumda PowerShell profili bir .ps1 dosyası olduğundan cmdlet $true değerini döndürür.
Örnek 5: Kayıt Defterindeki yolları kontrol edin
Bu komutlar, PowerShell kayıt defteri sağlayıcısıyla Test-Path'i kullanır.
İlk komut, sistemdeki Microsoft.PowerShell kayıt defteri anahtarının kayıt defteri yolunun doğru olup olmadığını test eder. PowerShell doğru şekilde yüklenirse cmdlet $true değerini döndürür.
Bu ö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 girişinin yolunu test etmek için kullanırsanız her zaman $false, kayıt defteri girişi mevcut olsa bile.
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 pwsh.exe dosyasının 13 Temmuz 2009 tarihinden 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
null, null dizisi veya boş dizi için döndürülen hata, sonlandırılmayan bir hatadır. -ErrorAction SilentlyContinue kullanılarak bastırılabilir. Aşağıdaki örnek, NullPathNotPertained hatasını döndüren tüm durumları gösterir.
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: Değeri boşluk olan bir yolu test edin
Path parametresi için bir boşluk dizesi sağlandığında $false değerini 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Ö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ü mevcut değilse yolun geçerliliğini test etmek başarısız olur. Bu soruna geçici bir çözüm bulmak için sürücünün önüne sağlayıcı adını ekleyebilirsiniz.
Test-Path -IsValid Z:\abc.txt
Test-Path -IsValid FileSystem::Z:\abc.txt
False
TrueParametreler
-Credential
Not
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-Command'ı kullanın.
- Tip :
PSCredential'ı
- Konum:
Adlandırılmış
- Varsayılan değer:
None
- Gerekli:
-
False
- Boru hattı girişini kabul edin:
True
- Joker karakterleri kabul et:
False
-Exclude
Bu cmdlet'in atladığı öğeleri belirtir. Bu parametrenin değeri Yol parametresini nitelendirir. *.txt gibi bir yol öğesi veya modeli girin. Joker karakterlere izin verilir.
- Tip :
String[]
- Konum:
Adlandırılmış
- Varsayılan değer:
None
- Gerekli:
False
- Boru hattı girişini kabul edin:
False
- Joker karakterleri kabul et:
True
-Filter
Sağlayıcının biçiminde veya dilinde bir filtre belirtir. Bu parametrenin değeri Yol parametresini nitelendirir. Joker karakterlerin kullanımı da dahil olmak üzere filtrenin sözdizimi sağlayıcıya bağlıdır. Filtreler diğer parametrelerden daha etkilidir çünkü sağlayıcı, PowerShell'in nesneleri alındıktan sonra filtrelemesini sağlamak yerine bunları nesneleri alırken uygular.
- Tip :
String
- Konum:
Adlandırılmış
- Varsayılan değer:
None
- Gerekli:
False
- Boru hattı girişini kabul edin:
False
- Joker karakterleri kabul et:
True
-Include
Bu cmdlet'in test ettiği yolları belirtir. Bu parametrenin değeri Yol parametresini nitelendirir. *.txt gibi bir yol öğesi veya modeli girin. Joker karakterlere izin verilir.
- Tip :
String[]
- Konum:
Adlandırılmış
- Varsayılan değer:
None
- Gerekli:
False
- Boru hattı girişini kabul edin:
False
- Joker karakterleri kabul et:
True
-IsValid
Bu cmdlet'in, yolun öğelerinin mevcut olup olmadığına bakılmaksızın yolun sözdizimini test ettiğini belirtir. Bu cmdlet, yol sözdizimi geçerliyse $true, değilse $false değerini döndürür. Test edilen yol bir sürücü belirtimi içeriyorsa, sürücü mevcut olmadığında cmdlet false değerini döndürür. PowerShell hangi sürücü sağlayıcısının test edileceğini bilmediğinden false değerini döndürür.
Not
.NET 2.1'de Yol API'lerinde önemli bir değişiklik yapıldı. Bu yöntemler artık geçersiz yol karakterlerini kontrol etmiyor. Bu değişiklik PowerShell'de IsValid denetiminin artık geçersiz karakterleri test etmediği bir gerilemeye neden oldu. Gerileme gelecekteki bir sürümde ele alınacaktır. Daha fazla bilgi için bkz. .NET Core 2,1'deki son değişiklikler.
- Tip :
SwitchParameter
- Konum:
Adlandırılmış
- Varsayılan değer:
None
- Gerekli:
False
- Boru hattı girişini kabul edin:
False
- Joker karakterleri kabul et:
False
-LiteralPath
Test edilecek yolu belirtir. Path'ten farklı olarak LiteralPath parametresinin değeri tam olarak yazıldığı gibi kullanılır. Hiçbir karakter joker karakter olarak yorumlanmaz. Yol, PowerShell tarafından kaçış dizileri olarak yorumlanabilecek karakterler içeriyorsa, yorumlanmamaları için yolu tek tırnak içine almanız gerekir.
- Tip :
String[]
- Takma adlar:
PSPath, LP
- Konum:
Adlandırılmış
- Varsayılan değer:
None
- Gerekli:
True
- Boru hattı girişini kabul edin:
True
- Joker karakterleri kabul et:
False
-NewerThan
Bu, FileSystem sağlayıcısı tarafından kullanıma sunulan dinamik bir parametredir.
DateTime nesnesi olarak bir saat belirtin.
PowerShell 7,5'ten önce cmdlet şunları yok sayar:
- PathType'ı
Herhangi biridışında herhangi bir değer olarak belirttiğinizde bu parametre. - Bu parametreyle birlikte kullanıldığında OlderThan parametresi.
- Yol bir dizine işaret ettiğinde bu parametre.
PowerShell 7.5'ten başlayarak, bu parametreyi PathType parametresine yönelik herhangi bir değerle birlikte, OlderThan parametresiyle bir tarih aralığını test etmek ve dizinlerin yaşını test etmek için kullanabilirsiniz.
Daha fazla bilgi için bkz. about_FileSystem_Provider.
- Tip :
Null yapılabilir
[[DateTime]] - Konum:
Adlandırılmış
- Varsayılan değer:
None
- Gerekli:
False
- Boru hattı girişini kabul edin:
False
- Joker karakterleri kabul et:
False
-OlderThan
Bu, FileSystem sağlayıcısı tarafından kullanıma sunulan dinamik bir parametredir.
DateTime nesnesi olarak bir saat belirtin.
PowerShell 7,5'ten önce cmdlet şunları yok sayar:
- PathType'ı
Herhangi biridışında herhangi bir değer olarak belirttiğinizde bu parametre. - Bu parametre NewerThan parametresiyle birlikte kullanıldığında.
- Yol bir dizine işaret ettiğinde bu parametre.
PowerShell 7.5'ten başlayarak, bu parametreyi PathType parametresine yönelik herhangi bir değerle birlikte, NewerThan parametresiyle bir tarih aralığını test etmek ve dizinlerin yaşını test etmek için kullanabilirsiniz.
Daha fazla bilgi için bkz. about_FileSystem_Provider.
- Tip :
Null yapılabilir
[[DateTime]] - Konum:
Adlandırılmış
- Varsayılan değer:
None
- Gerekli:
False
- Boru hattı girişini kabul edin:
False
- Joker karakterleri kabul et:
False
-Path
Test edilecek yolu belirtir. Joker karakterlere izin verilir. Yol boşluk içeriyorsa, onu tırnak işaretleri içine alın.
- Tip :
String[]
- Konum:
0
- Varsayılan değer:
None
- Gerekli:
True
- Boru hattı girişini kabul edin:
True
- Joker karakterleri kabul et:
True
-PathType
Yoldaki son öğenin türünü belirtir. Bu cmdlet, öğe belirtilen türdense $true değerini, değilse $false değerini döndürür. Bu parametre için kabul edilebilir değerler şunlardır:
Kapsayıcı- 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 bir yaprak.
Yoldaki son öğenin belirli bir türde olup olmadığını söyler.
Dikkat
PowerShell sürüm 6.1.2'ye kadar, IsValid ve PathType anahtarları birlikte belirtildiğinde Test-Path cmdlet'i PathType'ı yok sayar geçiş yapar ve yol türünü doğrulamadan yalnızca sözdizimsel yolu doğrular.
8607 numaralı soruna göre, bu davranışın düzeltilmesi, IsValid ve PathType anahtarlarının ayrı parametre kümelerine ait olduğu gelecekteki bir sürümde önemli bir değişiklik olabilir ve bu nedenle, Bu karışıklığı önlemek için birlikte kullanılmamalıdır.
- Tip :
TestPathType
- Takma adlar:
Type
- Kabul edilen değerler:
Herhangi biri, Konteyner, Yaprak
- Konum:
Adlandırılmış
- Varsayılan değer:
None
- Gerekli:
False
- Boru hattı girişini kabul edin:
False
- Joker karakterleri kabul et:
False
Girişler
Dize
Bu cmdlet'e bir yol içeren ancak gerçek bir yol içermeyen bir dize yönlendirebilirsiniz.
Çıkışlar
Boole
Cmdlet bir Boolean değeri döndürür.
Notlar
Path adını içeren cmdlet'ler (Path cmdlet'leri) yolla çalışır ve adları tüm PowerShell sağlayıcılarının yorumlayabileceği kısa bir biçimde döndürür. Bir yolun tamamını veya bir kısmını belirli bir biçimde görüntülemek istediğiniz programlarda ve komut dosyalarında kullanılmak üzere tasarlanmıştır. Bunları Dizname, Normpath, Realpath, Join veya diğer yol düzenleyicileri kullandığınız gibi kullanın.
Test-Path herhangi bir sağlayıcının açığa çıkardığı verilerle çalışacak şekilde tasarlanmıştır. Oturumunuzda mevcut olan sağlayıcıları listelemek için Get-PSProvider yazın. Daha fazla bilgi için bkz. about_Providers.