Test-Path
Menentukan apakah semua elemen jalur ada.
Sintaks
Path (Default) - FileSystem provider
Test-Path
[-Path] <string[]>
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-PathType <TestPathType>]
[-IsValid]
[-Credential <pscredential>]
[-UseTransaction]
[-OlderThan <datetime>]
[-NewerThan <datetime>]
[<CommonParameters>]
LiteralPath - FileSystem provider
Test-Path
-LiteralPath <string[]>
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-PathType <TestPathType>]
[-IsValid]
[-Credential <pscredential>]
[-UseTransaction]
[-OlderThan <datetime>]
[-NewerThan <datetime>]
[<CommonParameters>]
Path (Default) - All providers
Test-Path
[-Path] <string[]>
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-PathType <TestPathType>]
[-IsValid]
[-Credential <pscredential>]
[-UseTransaction]
[<CommonParameters>]
LiteralPath - All providers
Test-Path
-LiteralPath <string[]>
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-PathType <TestPathType>]
[-IsValid]
[-Credential <pscredential>]
[-UseTransaction]
[<CommonParameters>]
Deskripsi
Cmdlet Test-Path menentukan apakah semua elemen jalur ada. Ini mengembalikan $true jika semua elemen ada dan $false jika ada yang hilang. Ini juga dapat mengetahui apakah sintaks jalur valid dan apakah jalur mengarah ke kontainer atau terminal atau elemen daun. Jika Jalur adalah spasi kosong atau string kosong, cmdlet mengembalikan $false. Jika Jalur adalah $null, sebuah array $null atau array kosong, cmdlet mengembalikan kesalahan yang tidak mengakhiri.
Contoh
Contoh 1: Menguji jalur
Test-Path -Path "C:\Documents and Settings\DavidC"
True
Perintah ini memeriksa apakah semua elemen di jalur ada, termasuk direktori C:, direktori Documents and Settings, dan direktori DavidC. Jika ada yang hilang, cmdlet mengembalikan $false. Jika tidak, ia mengembalikan $true.
Contoh 2: Menguji jalur profil
Test-Path -Path $PROFILE
False
Test-Path -Path $PROFILE -IsValid
True
Perintah ini menguji jalur profil PowerShell.
Perintah pertama menentukan apakah semua elemen dalam jalur ada. Perintah kedua menentukan apakah sintaks jalur sudah benar. Dalam hal ini, jalurnya $false, tetapi sintaksnya benar $true. Perintah ini menggunakan $PROFILE, variabel otomatis yang menunjuk ke lokasi untuk profil, bahkan jika profil tidak ada.
Untuk informasi selengkapnya tentang variabel otomatis, lihat about_Automatic_Variables.
Contoh 3: Periksa apakah ada file selain jenis tertentu
Test-Path -Path "C:\CAD\Commercial Buildings\*" -Exclude *.dwg
False
Perintah ini memeriksa apakah ada file di direktori Bangunan Komersial selain file .dwg.
Perintah menggunakan parameter Jalur untuk menentukan jalur. Karena jalur menyertakan spasi, jalur diapit dalam tanda kutip. Tanda bintang di akhir jalur menunjukkan konten direktori Bangunan Komersial. Dengan jalur panjang, seperti ini, ketik beberapa huruf pertama jalur, lalu gunakan kunci TAB untuk menyelesaikan jalur.
Perintah menentukan parameter Kecualikan untuk menentukan file yang akan dihilangkan dari evaluasi.
Dalam hal ini, karena direktori hanya berisi file .dwg, hasilnya $false.
Contoh 4: Memeriksa file
Test-Path -Path $PROFILE -PathType Leaf
True
Perintah ini memeriksa apakah jalur yang disimpan dalam variabel $PROFILE mengarah ke file. Dalam hal ini, karena profil PowerShell adalah file .ps1, cmdlet mengembalikan $true.
Contoh 5: Periksa jalur di Registri
Perintah ini menggunakan Test-Path dengan penyedia PowerShell Registry.
Perintah pertama menguji apakah jalur registri kunci registri Microsoft.PowerShell benar pada sistem. Jika PowerShell diinstal dengan benar, cmdlet mengembalikan $true.
Penting
Test-Path tidak berfungsi dengan benar dengan semua penyedia PowerShell. Misalnya, Anda dapat menggunakan Test-Path untuk menguji jalur kunci registri, tetapi jika Anda menggunakannya untuk menguji jalur entri registri, itu selalu mengembalikan $false, bahkan jika entri registri ada.
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
Contoh 6: Menguji apakah file lebih baru dari tanggal yang ditentukan
Perintah ini menggunakan parameter dinamis NewerThan untuk menentukan apakah file powershell.exe pada komputer lebih baru dari July 13, 2009.
Parameter NewerThan hanya berfungsi di drive sistem file.
Test-Path $PSHOME\powershell.exe -NewerThan "July 13, 2009"
True
Contoh 7: Menguji jalur dengan null sebagai nilai
Kesalahan yang dikembalikan untuk null, array null, atau array yang kosong adalah kesalahan yang tidak mengakhiri proses. Ini dapat ditahan dengan menggunakan -ErrorAction SilentlyContinue. Contoh berikut menunjukkan semua kasus yang mengembalikan kesalahan 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
Contoh 8: Menguji jalur dengan spasi kosong sebagai nilai
Saat string spasi putih disediakan untuk parameter Jalur, string tersebut mengembalikan $true. Saat string kosong disediakan, Test-Path mengembalikan kesalahan. Contoh berikut menunjukkan spasi kosong dan string kosong.
Test-Path ' '
Test-Path ''
True
Test-Path : Cannot bind argument to parameter 'Path' because it is an empty string.
At line:1 char:11
+ Test-Path ''
+ ~~
+ CategoryInfo : InvalidData: (:) [Test-Path], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationErrorEmptyStringNotAllowed,Microsoft.PowerShell.Commands.TestPathCommand
Contoh 9: Menguji jalur yang mungkin memiliki drive yang tidak valid
Saat Anda menguji jalur yang menyertakan spesifikasi drive, pengujian validitas jalur akan gagal jika drive tersebut tidak ada. Anda dapat mengawali drive dengan nama penyedia untuk mengatasi masalah ini.
Test-Path -IsValid Z:\abc.txt
Test-Path -IsValid FileSystem::Z:\abc.txt
False
True
Parameter
-Credential
Nota
Parameter ini tidak didukung oleh penyedia apa pun yang diinstal dengan PowerShell. Untuk meniru pengguna lain, atau meningkatkan kredensial Anda saat menjalankan cmdlet ini, gunakan Invoke-Command.
Properti parameter
| Jenis: | PSCredential |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Kumpulan parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | True |
| Nilai dari argumen yang tersisa: | False |
-Exclude
Menentukan item yang tidak disertakan oleh cmdlet ini. Nilai parameter ini memenuhi syarat parameter Jalur. Masukkan elemen atau pola jalur, seperti *.txt. Karakter pengganti diizinkan.
Properti parameter
| Jenis: | String[] |
| Nilai default: | None |
| Mendukung wildcard: | True |
| DontShow: | False |
Kumpulan parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-Filter
Menentukan filter dalam format atau bahasa penyedia. Nilai parameter ini memenuhi syarat parameter Jalur. Sintaks filter, termasuk penggunaan karakter wildcard, tergantung pada penyedia. Filter lebih efisien daripada parameter lain, karena penyedia menerapkannya saat mengambil objek alih-alih meminta PowerShell memfilter objek setelah diambil.
Properti parameter
| Jenis: | String |
| Nilai default: | None |
| Mendukung wildcard: | True |
| DontShow: | False |
Kumpulan parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-Include
Menentukan jalur yang diuji oleh cmdlet ini. Nilai parameter ini memenuhi syarat parameter Jalur. Masukkan elemen atau pola jalur, seperti *.txt. Karakter pengganti diizinkan.
Properti parameter
| Jenis: | String[] |
| Nilai default: | None |
| Mendukung wildcard: | True |
| DontShow: | False |
Kumpulan parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-IsValid
Menunjukkan bahwa cmdlet ini menguji sintaks jalur, terlepas dari apakah elemen jalur ada. Cmdlet ini mengembalikan $true jika sintaks jalur valid dan $false jika tidak. Jika jalur yang sedang diuji menyertakan spesifikasi drive, cmdlet mengembalikan nilai false saat drive tidak ada. PowerShell mengembalikan false karena tidak tahu penyedia drive mana yang akan diuji.
Properti parameter
| Jenis: | SwitchParameter |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Kumpulan parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-LiteralPath
Menentukan jalur yang akan diuji. Tidak seperti Path, nilai parameter LiteralPath digunakan persis seperti yang ditik. Tidak ada karakter yang ditafsirkan sebagai karakter pengganti. Jika jalur menyertakan karakter yang dapat ditafsirkan oleh PowerShell sebagai urutan escape, Anda harus mengapit jalur dalam tanda kutip tunggal agar tidak ditafsirkan.
Properti parameter
| Jenis: | String[] |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
| Alias: | PSPath |
Kumpulan parameter
LiteralPath
| Position: | Named |
| Wajib: | True |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | True |
| Nilai dari argumen yang tersisa: | False |
-NewerThan
Ini adalah parameter dinamis yang disediakan oleh penyedia FileSystem.
Tentukan waktu sebagai objek DateTime .
Sebelum PowerShell 7.5, cmdlet mengabaikan:
- Parameter ini ketika Anda menentukan PathType sebagai nilai apa pun selain
Any. - Parameter OlderThan saat digunakan dengan parameter ini.
- Parameter ini digunakan ketika jalur menunjuk ke direktori.
Dimulai dengan PowerShell 7.5, Anda dapat menggunakan parameter ini dengan nilai apa pun untuk parameter PathType, untuk menguji rentang tanggal dengan parameter OlderThan, dan untuk menguji usia direktori.
Untuk informasi selengkapnya, lihat about_FileSystem_Provider.
Properti parameter
| Jenis: | |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Kumpulan parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-OlderThan
Ini adalah parameter dinamis yang disediakan oleh penyedia FileSystem.
Tentukan waktu sebagai objek DateTime .
Sebelum PowerShell 7.5, cmdlet mengabaikan:
- Parameter ini ketika Anda menentukan PathType sebagai nilai apa pun selain
Any. - Parameter ini saat digunakan dengan parameter NewerThan.
- Parameter ini digunakan ketika jalur menunjuk ke direktori.
Dimulai dengan PowerShell 7.5, Anda dapat menggunakan parameter ini dengan nilai apa pun untuk parameter PathType, untuk menguji rentang tanggal dengan parameter NewerThan, dan untuk menguji usia direktori.
Untuk informasi selengkapnya, lihat about_FileSystem_Provider.
Properti parameter
| Jenis: | |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Kumpulan parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-Path
Menentukan jalur yang akan diuji. Karakter pengganti diizinkan. Jika jalur menyertakan spasi, sertakan dalam tanda kutip.
Properti parameter
| Jenis: | String[] |
| Nilai default: | None |
| Mendukung wildcard: | True |
| DontShow: | False |
Kumpulan parameter
Path
| Position: | 0 |
| Wajib: | True |
| Nilai dari alur: | True |
| Nilai dari alur berdasarkan nama properti: | True |
| Nilai dari argumen yang tersisa: | False |
-PathType
Menentukan jenis elemen akhir dalam jalur. Cmdlet ini mengembalikan $true jika elemennya adalah jenis yang ditentukan dan $false jika tidak. Nilai yang dapat diterima untuk parameter ini adalah:
-
Container- Elemen yang berisi elemen lain, seperti direktori atau kunci registri. -
Leaf- Elemen yang tidak berisi elemen lain, seperti file. -
Any- Baik kontainer atau daun.
Memberi tahu apakah elemen akhir dalam jalur adalah jenis tertentu.
Caution
Hingga PowerShell versi 6.1.2, saat sakelar IsValid dan PathType ditentukan bersama-sama, cmdlet Test-Path mengabaikan sakelar PathType dan hanya memvalidasi jalur sintaktik tanpa memvalidasi jenis jalur.
Menurut masalah #8607, memperbaiki perilaku ini mungkin akan menjadi perubahan signifikan dalam versi mendatang, di mana sakelar IsValid dan PathType termasuk dalam set parameter yang terpisah, dan karenanya tidak dapat digunakan bersamaan yang dapat mencegah kebingungan ini.
Properti parameter
| Jenis: | TestPathType |
| Nilai default: | None |
| Nilai yang diterima: | Any, Container, Leaf |
| Mendukung wildcard: | False |
| DontShow: | False |
| Alias: | Tipe |
Kumpulan parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-UseTransaction
Menyertakan perintah dalam transaksi aktif. Parameter ini hanya valid ketika transaksi sedang berlangsung. Untuk informasi selengkapnya, lihat about_Transactions
Properti parameter
| Jenis: | SwitchParameter |
| Nilai default: | False |
| Mendukung wildcard: | False |
| DontShow: | False |
| Alias: | usetx |
Kumpulan parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
CommonParameters
Cmdlet ini mendukung parameter umum: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction, dan -WarningVariable. Untuk informasi selengkapnya, lihat about_CommonParameters.
Input
String
Anda dapat menyalurkan string yang berisi jalur, tetapi bukan jalur harfiah, ke cmdlet ini.
Output
Boolean
Cmdlet mengembalikan nilai Boolean.
Catatan
Cmdlet yang berisi kata benda Jalur (cmdlet Jalur ) bekerja dengan jalur dan mengembalikan nama dalam format singkat yang dapat diinterpretasikan oleh semua penyedia PowerShell. Mereka dirancang untuk digunakan dalam program dan skrip tempat Anda ingin menampilkan semua atau sebagian jalur dalam format tertentu. Gunakan mereka seperti Anda akan menggunakan Dirname, Normpath, Realpath, Join, atau manipulator jalur lainnya.
Test-Path dirancang untuk bekerja dengan data yang diekspos oleh penyedia mana pun. Untuk mencantumkan penyedia yang tersedia dalam sesi Anda, ketik Get-PSProvider. Untuk informasi selengkapnya, lihat tentang_Penyedia.