Test-Path
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>]
Description
Cmdlet, Test-Path
yolun tüm öğelerinin var olup olmadığını belirler. Tüm öğeler varsa ve $false
eksikse döndürür$true
. 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 DavidC
dizin Documents and Settings
de dahil olmak üzere C:
yoldaki tüm öğelerin mevcut olup olmadığını denetler. Eksik cmdlet'i döndürür $false
. Aksi takdirde döndürür $true
.
Ö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.PowerShell kayıt defteri anahtarının kayıt defteri yolunun sistemde doğru olup olmadığını sınar. PowerShell doğru yüklenmişse cmdlet'i döndürür $true
.
Ö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 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.exe
July 13, 2009
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
için null
döndürülen hata, null
veya boş dizi dizisi sonlandırılmayan bir hatadır. kullanılarak -ErrorAction SilentlyContinue
gizlenebilir. 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, Windows PowerShell 5.1'den 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
Not
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-Command kullanın.
Tür: | PSCredential |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | True |
Joker karakterleri kabul et: | False |
-Exclude
Bu cmdlet'in atlayan öğeleri belirtir. Bu parametrenin değeri Path parametresini niteler. gibi *.txt
bir yol öğesi veya deseni girin. Joker karakterlere izin verilir.
Tür: | String[] |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | True |
-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.
Tür: | String |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | True |
-Include
Bu cmdlet'in test yaptığı yolları belirtir. Bu parametrenin değeri Path parametresini niteler. gibi *.txt
bir yol öğesi veya deseni girin. Joker karakterlere izin verilir.
Tür: | String[] |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | True |
-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 $false
geçerli değilse döndürür$true
. 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.
Not
.NET 2.1'de Yol API'lerinde hataya neden olan bir değişiklik yapıldı. 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'de hataya neden olan değişiklikler.
Tür: | SwitchParameter |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | 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.
Tür: | String[] |
Diğer adlar: | PSPath, LP |
Position: | Named |
Default value: | None |
Gerekli: | True |
İşlem hattı girişini kabul et: | True |
Joker karakterleri kabul et: | 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
Any
bir 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.
Tür: | Nullable<T>[[DateTime]] |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | 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
Any
bir 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.
Tür: | Nullable<T>[[DateTime]] |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-Path
Test edilecek yolu belirtir. Joker karakterlere izin verilir. Yol boşluk içeriyorsa, tırnak içine alın.
Tür: | String[] |
Position: | 0 |
Default value: | None |
Gerekli: | True |
İşlem hattı girişini kabul et: | True |
Joker karakterleri kabul et: | True |
-PathType
Yoldaki son öğenin türünü belirtir. Bu cmdlet, öğe belirtilen türdeyse ve $false
değilse döndürür$true
. Bu parametrenin kabul edilebilir değerleri ş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.
Dikkat
PowerShell sürüm 6.1.2'ye kadar, IsValid ve PathType anahtarları birlikte belirtildiğindeTest-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.
Tür: | TestPathType |
Diğer adlar: | Type |
Kabul edilen değerler: | Any, Container, Leaf |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
Girişler
Bu cmdlet'e yol içeren ancak değişmez yol içermeyen bir dizeyi kanala aktarabilirsiniz.
Çıkışlar
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 yazın Get-PSProvider
. Daha fazla bilgi için bkz . about_Providers.
İlişkili Bağlantılar
PowerShell