Test-Path

Menentukan apakah semua elemen jalur ada.

Sintaks

Path (Default)

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>]

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 Path adalah spasi kosong atau string kosong, maka $False dikembalikan. Jika Path adalah $null, array of $null atau array kosong, kesalahan non-terminating akan ditampilkan.

Contoh

Contoh 1: Menguji jalur

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

Perintah ini memeriksa apakah semua elemen dalam jalur ada, yaitu C: direktori, Documents and Settings direktori, dan DavidC direktori. 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 registri PowerShell.

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" di komputer lebih baru dari "13 Juli 2009".

Parameter NewerThan hanya berfungsi di drive sistem file.

Test-Path $pshome\pwsh.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

Ketika string spasi kosong disediakan untuk parameter Path , string tersebut mengembalikan False. Ini adalah perubahan dari Windows PowerShell 5.1. Saat string kosong disediakan, Test-Path mengembalikan kesalahan. Contoh berikut menunjukkan spasi kosong dan string kosong.

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

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.

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 Jalur, nilai parameter LiteralPath digunakan persis sebagaimana diketik. 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, LP

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

Tentukan waktu sebagai objek DateTime .

Properti parameter

Jenis:

Nullable<T>[DateTime]

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

Tentukan waktu sebagai objek DateTime .

Properti parameter

Jenis:

Nullable<T>[DateTime]

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:

  • Kontainer. Elemen yang berisi elemen lain, seperti direktori atau kunci registri.
  • Daun. Elemen yang tidak berisi elemen lain, seperti file.
  • Apa saja. Baik kontainer atau daun.

Memberi tahu apakah elemen akhir dalam jalur adalah jenis tertentu.

Perhatian

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 merupakan perubahan yang melanggar dalam versi mendatang, di mana sakelar IsValid dan PathType milik set parameter terpisah, dan dengan demikian, tidak dapat digunakan bersama-sama menghindari 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

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 Path) berfungsi dengan nama jalur dan mengembalikan nama dalam format ringkas yang dapat ditafsirkan oleh semua penyedia PowerShell. Mereka dirancang untuk digunakan dalam program dan skrip di mana Anda ingin menampilkan semua atau sebagian dari nama 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.