Bagikan melalui


Set-Location

Mengatur lokasi kerja saat ini ke lokasi tertentu.

Sintaks

Set-Location
   [[-Path] <String>]
   [-PassThru]
   [<CommonParameters>]
Set-Location
   -LiteralPath <String>
   [-PassThru]
   [<CommonParameters>]
Set-Location
   [-PassThru]
   [-StackName <String>]
   [<CommonParameters>]

Deskripsi

Set-Location Cmdlet mengatur lokasi kerja ke lokasi tertentu. Lokasi tersebut bisa berupa direktori, subdirektori, lokasi registri, atau jalur penyedia apa pun.

PowerShell 6.2 menambahkan dukungan untuk - dan + sebagai nilai untuk parameter Jalur . PowerShell mempertahankan riwayat 20 lokasi terakhir yang dapat diakses dengan - dan +. Daftar ini independen dari tumpukan lokasi yang diakses menggunakan parameter StackName .

Contoh

Contoh 1: Atur lokasi saat ini

PS C:\> Set-Location -Path "HKLM:\"
PS HKLM:\>

Perintah ini mengatur lokasi saat ini ke akar HKLM: drive.

Contoh 2: Atur lokasi saat ini dan tampilkan lokasi tersebut

PS C:\> Set-Location -Path "Env:\" -PassThru

Path
----
Env:\

PS Env:\>

Perintah ini mengatur lokasi saat ini ke akar Env: drive. Ini menggunakan parameter PassThru untuk mengarahkan PowerShell untuk mengembalikan objek PathInfo yang mewakili Env:\ lokasi.

Contoh 3: Atur lokasi ke lokasi saat ini di drive C:

PS C:\Windows\> Set-Location HKLM:\
PS HKLM:\> Set-Location C:
PS C:\Windows\>

Perintah pertama mengatur lokasi ke akar HKLM: drive di penyedia Registri. Perintah kedua mengatur lokasi ke lokasi C: drive saat ini di penyedia FileSystem. Ketika nama drive ditentukan dalam formulir <DriveName>: (tanpa garis miring terbelakang), cmdlet mengatur lokasi ke lokasi saat ini di PSDrive. Untuk mendapatkan lokasi saat ini di perintah penggunaan Get-Location -PSDrive <DriveName> PSDrive.

Contoh 4: Atur lokasi saat ini ke tumpukan bernama

PS C:\> Push-Location -Path 'C:\Program Files\PowerShell\' -StackName "Paths"
PS C:\Program Files\PowerShell\> Set-Location -StackName "Paths"
PS C:\Program Files\PowerShell\> Get-Location -Stack

Path
----
C:\

Perintah pertama menambahkan lokasi saat ini ke tumpukan Jalur. Perintah kedua membuat lokasi Jalur menumpuk tumpukan lokasi saat ini. Perintah ketiga menampilkan lokasi di tumpukan lokasi saat ini.

*-Location Cmdlet menggunakan tumpukan lokasi saat ini kecuali tumpukan lokasi yang berbeda ditentukan dalam perintah. Untuk informasi tentang tumpukan lokasi, lihat Catatan.

Contoh 5: Menavigasi riwayat lokasi menggunakan '+' atau '-'

PS C:\> Set-Location -Path $env:SystemRoot
PS C:\Windows> Set-Location -Path Cert:\
PS Cert:\> Set-Location -Path HKLM:\
PS HKLM:\>

# Navigate back through the history using "-"
PS HKLM:\> Set-Location -Path -
PS Cert:\> Set-Location -Path -
PS C:\Windows>

# Navigate using the Set-Location alias "cd" and the implicit positional Path parameter
PS C:\Windows> cd -
PS C:\> cd +
PS C:\Windows> cd +
PS Cert:\>

Menggunakan alias, cd - atau cd + adalah cara mudah untuk menavigasi melalui riwayat lokasi Anda saat berada di terminal Anda. Untuk informasi selengkapnya tentang menavigasi dengan -/+, lihat Parameter jalur.

Parameter

-LiteralPath

Menentukan jalur lokasi. Nilai parameter LiteralPath digunakan persis seperti yang ditik. Tidak ada karakter yang ditafsirkan sebagai karakter kartubebas. Jika jalur menyertakan karakter escape, sertakan dalam tanda kutip tunggal. Tanda kutip tunggal memberi tahu PowerShell untuk tidak menginterpretasikan karakter apa pun sebagai urutan escape.

Jenis:String
Alias:PSPath, LP
Position:Named
Nilai default:None
Diperlukan:True
Terima input alur:True
Terima karakter wildcard:False

-PassThru

Mengembalikan objek PathInfo yang mewakili lokasi. Secara default, cmdlet ini tidak menghasilkan output apa pun.

Jenis:SwitchParameter
Position:Named
Nilai default:False
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-Path

Tentukan jalur lokasi kerja baru. Jika tidak ada jalur yang disediakan, Set-Location default ke direktori beranda pengguna saat ini. Ketika kartubebas digunakan, cmdlet memilih kontainer (direktori, kunci registri, penyimpanan sertifikat) yang cocok dengan pola wildcard. Jika pola kartubebas cocok dengan lebih dari satu kontainer, cmdlet mengembalikan kesalahan.

PowerShell menyimpan riwayat 20 lokasi terakhir yang telah Anda tetapkan. Jika nilai parameter Jalur adalah - karakter, maka lokasi kerja baru akan menjadi lokasi kerja sebelumnya dalam riwayat (jika ada). Demikian pula, jika nilainya adalah + karakter, maka lokasi kerja baru akan menjadi lokasi kerja berikutnya dalam riwayat (jika ada). Ini mirip dengan menggunakan Pop-Location dan Push-Location kecuali bahwa riwayat adalah daftar, bukan tumpukan, dan dilacak secara implisit, tidak dikontrol secara manual. Tidak ada cara untuk melihat daftar riwayat.

Jenis:String
Position:0
Nilai default:None
Diperlukan:False
Terima input alur:True
Terima karakter wildcard:True

-StackName

Menentukan nama tumpukan lokasi yang ada bahwa cmdlet ini membuat tumpukan lokasi saat ini. Masukkan nama tumpukan lokasi. Untuk menunjukkan tumpukan lokasi default yang tidak disebutkan namanya, ketik $null atau string kosong ("").

Menggunakan parameter ini tidak mengubah lokasi saat ini. Ini hanya mengubah tumpukan yang *-Location digunakan oleh cmdlet. *-Location Cmdlet bertindak pada tumpukan saat ini kecuali Anda menggunakan parameter StackName untuk menentukan tumpukan yang berbeda. Untuk informasi selengkapnya tentang tumpukan lokasi, lihat Catatan.

Jenis:String
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:True
Terima karakter wildcard:False

Input

String

Anda dapat menyalurkan string yang berisi jalur, tetapi bukan jalur harfiah, ke cmdlet ini.

Output

None

Secara default, cmdlet ini tidak mengembalikan output.

PathInfo

Saat Anda menggunakan parameter PassThru dengan Path atau LiteralPath, cmdlet ini mengembalikan objek PathInfo yang mewakili lokasi baru.

PathInfoStack

Saat Anda menggunakan parameter PassThru dengan StackName, cmdlet ini mengembalikan objek PathInfoStack yang mewakili konteks tumpukan baru.

Catatan

PowerShell menyertakan alias berikut untuk Set-Location:

  • Semua Platform:
    • cd
    • chdir
    • sl

PowerShell mendukung beberapa runspace per proses. Setiap runspace memiliki direktorinya sendiri saat ini. Ini tidak sama [System.Environment]::CurrentDirectorydengan . Perilaku ini dapat menjadi masalah saat memanggil API .NET atau menjalankan aplikasi asli tanpa menyediakan jalur direktori eksplisit.

Bahkan jika cmdlet lokasi memang mengatur direktori saat ini di seluruh proses, Anda tidak dapat bergantung padanya karena runspace lain mungkin mengubahnya kapan saja. Anda harus menggunakan cmdlet lokasi untuk melakukan operasi berbasis jalur menggunakan direktori kerja saat ini khusus untuk runspace saat ini.

Set-Location Cmdlet dirancang untuk bekerja dengan data yang diekspos oleh penyedia mana pun. Untuk mencantumkan penyedia yang tersedia di sesi Anda, ketik Get-PSProvider. Untuk informasi selengkapnya, lihat about_Providers.

Tumpukan adalah daftar terakhir masuk dan keluar pertama di mana hanya item yang terakhir ditambahkan yang dapat diakses. Anda menambahkan item ke tumpukan dalam urutan yang Anda gunakan, lalu mengambilnya untuk digunakan dalam urutan terbalik. PowerShell memungkinkan Anda menyimpan lokasi penyedia di tumpukan lokasi. PowerShell membuat tumpukan lokasi default yang tidak disebutkan namanya. Anda dapat membuat beberapa tumpukan lokasi bernama. Jika Anda tidak menentukan nama tumpukan, PowerShell menggunakan tumpukan lokasi saat ini. Secara default, lokasi default yang tidak disebutkan namanya adalah tumpukan lokasi saat ini, tetapi Anda dapat menggunakan Set-Location cmdlet untuk mengubah tumpukan lokasi saat ini.

Untuk mengelola tumpukan lokasi, gunakan *-Location cmdlet, sebagai berikut:

  • Untuk menambahkan lokasi ke tumpukan lokasi, gunakan Push-Location cmdlet.

  • Untuk mendapatkan lokasi dari tumpukan lokasi, gunakan Pop-Location cmdlet.

  • Untuk menampilkan lokasi di tumpukan lokasi saat ini, gunakan parameter Get-Location Tumpukan cmdlet. Untuk menampilkan lokasi dalam tumpukan lokasi bernama, gunakan parameter StackName dari Get-Location.

  • Untuk membuat tumpukan lokasi baru, gunakan parameter StackName dari Push-Location. Jika Anda menentukan tumpukan yang tidak ada, Push-Location buat tumpukan.

  • Untuk membuat tumpukan lokasi tumpukan lokasi saat ini, gunakan parameter StackName dari Set-Location.

Tumpukan lokasi default yang tidak disebutkan namanya hanya dapat diakses sepenuhnya ketika tumpukan lokasi saat ini. Jika Anda membuat tumpukan lokasi bernama tumpukan lokasi saat ini, Anda tidak dapat lagi menggunakan Push-Location cmdlet atau Pop-Location untuk menambahkan atau mendapatkan item dari tumpukan default atau menggunakan Get-Location cmdlet untuk menampilkan lokasi di tumpukan yang tidak disebutkan namanya. Untuk membuat tumpukan yang tidak disebutkan namanya menjadi tumpukan saat ini, gunakan parameter StackName cmdlet Set-Location dengan nilai $null atau string kosong ("").