Apa itu Variabel Otomatis di PowerShell

Apa Itu Variabel Otomatis Di Powershell



PowerShell ' Variabel Otomatis ” sangat penting untuk manajemen sistem, otomatisasi, dan aktivitas pembuatan skrip. Variabel ini dibangun oleh runtime PowerShell dan berfungsi sebagai placeholder untuk menyimpan dan mereferensikan informasi tertentu selama eksekusi skrip atau perintah. Memahami dan memanfaatkan variabel otomatis ini secara efektif dapat sangat meningkatkan efisiensi dan fungsionalitas skrip PowerShell.

Artikel ini bertujuan untuk mengeksplorasi konsep 'Variabel Otomatis' di PowerShell, signifikansinya, dan bagaimana variabel tersebut dapat dimanfaatkan dalam berbagai skenario.







Apa itu Variabel Otomatis di PowerShell?

Untuk memulai, mari selidiki definisi ' Variabel Otomatis ”. Variabel ini sudah ditentukan sebelumnya dan dibuat secara otomatis oleh PowerShell selama eksekusi skrip. Ini melayani tujuan yang berbeda, termasuk memberikan informasi tentang sistem, argumen baris perintah, detail terkait skrip, dan banyak lagi.



PowerShell menawarkan beberapa 'Variabel Otomatis' dan masing-masing memiliki tujuan berbeda dalam eksekusi skrip. Variabel tersebut adalah sebagai berikut:



1. $PSVersionTable

Salah satu variabel otomatis mendasar di PowerShell adalah “ $PSVersionTable ”. Variabel ini memungkinkan pengembang skrip untuk memastikan versi PowerShell yang digunakan, yang dapat menjadi sangat penting saat mempertimbangkan kompatibilitas dan ketersediaan fitur dan fungsionalitas tertentu.





Properti berikut dikaitkan dengan variabel ini:

Versi PS: Mengembalikan nomor versi PowerShell.



Edisi PS: Untuk PowerShell 4 dan sebelumnya, serta PowerShell 5.1 pada versi Windows berfitur lengkap, properti ini memiliki nilai 'Desktop'. Karakteristik ini memiliki nilai Core untuk PowerShell 6 dan yang lebih baru, serta Windows PowerShell 5.1 untuk edisi low-footprint seperti Windows Nano Server atau Windows IoT.

GitCommitId: Mengambil ID komit GitHub file sumber.

ANDA: Mencatat informasi tentang sistem komputer yang digunakan PowerShell.

Platform: Mengembalikan platform pendukung sistem operasi. Unix memiliki nilai di Linux dan macOS. Lihat $IsMacOs dan $IsLinux.

PSVersi yang Kompatibel: Versi PowerShell yang kompatibel dengan versi saat ini dikembalikan.

Versi PSRemotingProtocol: Mengembalikan nomor versi untuk protokol manajemen jarak jauh PowerShell.

Versi Serialisasi: Mengembalikan versi metode serialisasi.

Versi WSManStack: Mengembalikan nomor versi tumpukan WS-Management.

$ Tabel Versi PS

2. $Arg

Variabel otomatis penting lainnya di PowerShell adalah “ $Args ”, yang berisi larik argumen baris perintah yang diteruskan ke skrip atau fungsi. Variabel ini memberdayakan pengembang untuk memproses dan memanipulasi argumen yang diberikan secara dinamis di dalam skrip mereka.

Saat mendefinisikan suatu fungsi, Anda dapat menggunakan kata kunci 'param' untuk mendeklarasikan parameter atau Anda dapat menambahkan daftar parameter yang dipisahkan koma dalam tanda kurung setelah nama fungsi. Variabel '$Args' tindakan peristiwa menyimpan objek yang berfungsi sebagai placeholder untuk parameter peristiwa dari peristiwa yang sedang ditangani:

untuk setiap ( $arg di dalam $Args ) {
Tulis-Host $arg
}

3. $MyInvocation

$MyInvokasi ” variabel memberikan data latar belakang penting tentang skrip atau prosedur yang sedang berjalan. Ini menawarkan properti seperti nama skrip, nomor baris skrip, dan apakah skrip dijalankan secara interaktif atau non-interaktif. Properti ini membantu pengembang skrip menerapkan logika percabangan, menentukan mekanisme penanganan kesalahan, atau menghasilkan pencatatan dan pelaporan yang bermakna:

$ Doa Saya

4. $Kesalahan

Variabel otomatis yang kurang dikenal “ $Kesalahan ”, secara efektif menangkap pesan kesalahan atau pengecualian apa pun yang terjadi selama eksekusi skrip. “$Error” dapat diakses untuk mengambil detail error tertentu seperti pesan pengecualian, pelacakan tumpukan, atau kode error, memungkinkan analisis detail dan debugging.

Kesalahan terbaru diwakili oleh objek kesalahan pertama dalam larik “ $Kesalahan[0] “. Anda dapat menggunakan opsi umum ErrorAction dengan nilai 'Ignore' untuk menghentikan kesalahan ditambahkan ke larik '$Error'.

Misalkan kita mengetik perintah yang akurat:

aku p [ onfig

Sekarang, jika kita memasukkan cmdlet “$Error”:

$ Kesalahan

5. $PSCmdlet

Saat bekerja dengan modul PowerShell, variabel otomatis “ $PSCmdlet ” mulai berlaku. Variabel ini menyediakan akses ke instance cmdlet atau fungsi saat ini yang dipanggil, memfasilitasi interaksi langsung dengan properti dan metodenya.

Dengan menggunakan “$PSCmdlet”, pengembang skrip tingkat lanjut dapat menyempurnakan dan menyempurnakan perilaku modul dengan memperluas atau memodifikasi fungsionalitas bawaan. Anda dapat menggunakan atribut dan metode objek dalam cmdlet atau kode fungsi sebagai respons terhadap kriteria penggunaan:

fungsi typeof-psCmdlet {
[ cmdletBinding ( ) ] param ( )
gema 'jenis ` $psCmdlet adalah $($psCmdlet.GetType() .Nama lengkap)'
}

typeof-psCmdlet

Selain variabel yang disebutkan di atas, PowerShell mencakup variabel otomatis seperti $HOME, $PROFILE, $PWD, dan banyak lagi, yang memiliki tujuan berbeda, seperti mengakses input, melacak kesalahan, mengambil informasi lingkungan, mengelola parameter, dan banyak lagi. Variabel ini tercantum di bawah ini:

Variabel Otomatis Keterangan
$$ Memegang token terakhir di baris sebelumnya yang diterima oleh sesi PowerShell.
$? Menyimpan status eksekusi dari perintah terakhir.
$^ Berisi token pertama dari baris terakhir yang diterima oleh sesi.
$_ Merupakan objek saat ini dalam pipa.
$ConsoleFileName Berisi jalur file konsol (.psc1) yang terakhir digunakan dalam sesi.
$EnabledExperimentalFeatures Berisi daftar fitur eksperimental yang diaktifkan.
$Acara Berisi objek 'PSEventArgs' yang mewakili peristiwa yang sedang diproses.
$EventArgs Berisi argumen kejadian pertama dari kejadian yang sedang diproses.
$EventSubscriber Mewakili pelanggan acara dari acara yang sedang diproses.
$ExecutionContext Mewakili konteks eksekusi host PowerShell.
$salah Merupakan nilai Boolean 'False'.
$untuk setiap Berisi enumerator dari loop 'untuk-Setiap'.
$RUMAH Berisi path lengkap dari direktori home pengguna.
$Host Merupakan aplikasi host saat ini untuk PowerShell.
$masukan Berfungsi sebagai pencacah untuk semua input yang diteruskan ke fungsi atau skrip.
$IsCoreCLR Menunjukkan jika sesi berjalan pada .NET Core Runtime (CoreCLR).
$IsLinux Menunjukkan jika sesi berjalan pada sistem operasi Linux.
$IsMacOS Menunjukkan jika sesi berjalan pada sistem operasi MacOS.
$IsWindows Mengidentifikasi apakah sesi berjalan pada sistem operasi Windows.
$LASTEXITCODE Menyimpan kode keluar dari program asli terakhir atau skrip PowerShell.
$Cocok Berisi string yang cocok dari operator “-match” dan “-notmatch”.
$NestedPromptLevel Melacak level prompt saat ini dalam perintah bersarang atau skenario debug.
$null Merupakan nilai null atau kosong.
$PID Berisi pengidentifikasi proses (PID) dari sesi PowerShell.
$PROFIL Berisi jalur lengkap profil PowerShell untuk aplikasi pengguna dan host saat ini.
$PSBoundParameters Memegang kamus parameter yang diteruskan ke skrip atau fungsi dan nilainya.
$PSCommandPath Berisi jalur lengkap dan nama file dari skrip yang sedang dieksekusi.
$PSCulture Mencerminkan budaya ruang operasi PowerShell saat ini.
$PSEdition Berisi informasi edisi PowerShell.
$PSHOME Berisi path lengkap dari direktori instalasi PowerShell.
$PSItem Sama seperti $_, mewakili objek saat ini di dalam pipa.
$PSScriptRoot Berisi path lengkap dari direktori induk skrip pelaksana.
$PSSenderInfo Berisi informasi tentang pengguna yang memulai PSSession.
$PSUICulture Mencerminkan budaya antarmuka pengguna (UI) yang dikonfigurasi dalam sistem operasi.
$PWD Merupakan direktori kerja saat ini dari sesi PowerShell.
$ Pengirim Berisi objek yang menghasilkan suatu peristiwa.
$ShellId Berisi pengenal shell saat ini.
$StackTrace Menyimpan pelacakan tumpukan untuk kesalahan terbaru.
$beralih Berisi enumerator dari pernyataan 'Switch'.
$ini Mengacu pada instance kelas dalam blok skrip yang memperluas kelas.
$benar Merupakan nilai Boolean 'True'.

Semua 'variabel otomatis' di PowerShell dapat ditemukan dengan menjalankan perintah di bawah ini:

Dapatkan-Variabel

Kesimpulan

Variabel Otomatis ” membentuk tulang punggung skrip PowerShell, yang memungkinkan pengembang memperoleh informasi tentang sistem, argumen baris perintah, konteks eksekusi skrip, dan banyak lagi. Dengan memanfaatkan variabel otomatis seperti “$PSVersionTable”, “$Args”, “$MyInvocation”, “$Error”, dan lainnya, pengembang skrip PowerShell dapat membuat praktik administrasi sistem yang disederhanakan.