Apakah Pembolehubah Automatik dalam PowerShell

Apakah Pembolehubah Automatik Dalam Powershell



PowerShell ' Pembolehubah Automatik ” adalah penting untuk pengurusan sistem, automasi dan aktiviti skrip. Pembolehubah ini terbina dalam oleh masa jalan PowerShell dan berfungsi sebagai pemegang tempat untuk menyimpan dan merujuk maklumat khusus semasa pelaksanaan skrip atau arahan. Memahami dan menggunakan pembolehubah automatik ini dengan berkesan boleh meningkatkan kecekapan dan kefungsian skrip PowerShell.

Artikel ini bertujuan untuk meneroka konsep 'Pembolehubah Automatik' dalam PowerShell, kepentingannya dan cara ia boleh dimanfaatkan dalam pelbagai senario.







Apakah Pembolehubah Automatik dalam PowerShell?

Untuk memulakan, mari kita mendalami definisi ' Pembolehubah Automatik ”. Pembolehubah ini dipratentukan dan dicipta secara automatik oleh PowerShell semasa pelaksanaan skrip. Ini mempunyai tujuan yang berbeza, termasuk menyediakan maklumat tentang sistem, hujah baris perintah, butiran berkaitan skrip dan banyak lagi.



PowerShell menawarkan beberapa 'Pembolehubah Automatik' dan setiap daripadanya mempunyai tujuan tersendiri dalam pelaksanaan skrip. Pembolehubah ini adalah, seperti berikut:



1. $PSVersionTable

Salah satu pembolehubah automatik asas dalam PowerShell ialah “ $PSVersionTable ”. Pembolehubah ini membenarkan pembangun skrip untuk memastikan versi PowerShell yang sedang digunakan, yang boleh menjadi penting apabila mempertimbangkan keserasian dan ketersediaan ciri dan fungsi tertentu.





Sifat berikut dikaitkan dengan pembolehubah ini:

PSVersion: Mengembalikan nombor versi PowerShell.



PSEdition: Untuk PowerShell 4 dan lebih awal, serta PowerShell 5.1 pada versi Windows berciri penuh, sifat ini mempunyai nilai 'Desktop.' Ciri ini mempunyai nilai Teras untuk PowerShell 6 dan lebih baru, serta Windows PowerShell 5.1 untuk edisi jejak rendah seperti Windows Nano Server atau Windows IoT.

GitCommitId: Mengambil ID komit GitHub fail sumber.

ANDA: Log maklumat tentang sistem komputer yang PowerShell gunakan.

Platform: Mengembalikan platform sokongan sistem pengendalian. Unix mempunyai nilai pada Linux dan macOS. Lihat $IsMacOs dan $IsLinux.

Versi PSCompatible: Versi PowerShell yang serasi dengan versi semasa dikembalikan.

PSRemotingProtocolVersion: Mengembalikan nombor versi untuk protokol pengurusan jauh PowerShell.

Versi Siri: Mengembalikan versi kaedah bersiri.

WSManStackVersion: Mengembalikan nombor versi tindanan WS-Management.

$ PSVersionTable

2. $Args

Satu lagi pembolehubah automatik penting dalam PowerShell ialah “ $Args ”, yang mengandungi pelbagai hujah baris perintah yang dihantar kepada skrip atau fungsi. Pembolehubah ini memberi kuasa kepada pembangun untuk memproses dan memanipulasi hujah yang disediakan secara dinamik dalam skrip mereka.

Apabila mentakrifkan fungsi, anda boleh menggunakan kata kunci 'param' untuk mengisytiharkan parameter atau anda boleh menambah senarai parameter yang dipisahkan koma dalam kurungan mengikut nama fungsi. Pembolehubah '$Args' tindakan acara menyimpan objek yang berfungsi sebagai ruang letak untuk parameter acara acara yang dikendalikan:

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

3. $MyInvocation

' $MyInvocation ” pembolehubah memberikan data latar belakang penting tentang skrip atau prosedur yang sedang dijalankan. Ia menawarkan sifat seperti nama skrip, nombor baris skrip dan sama ada skrip dijalankan secara interaktif atau tidak interaktif. Sifat ini membantu pembangun skrip melaksanakan logik percabangan, mentakrifkan mekanisme pengendalian ralat atau menjana pengelogan dan pelaporan yang bermakna:

$ MyInvocation

4. $Error

Pembolehubah automatik yang kurang dikenali ' $Error ”, secara berkesan menangkap sebarang mesej ralat atau pengecualian yang berlaku semasa pelaksanaan skrip. “$Error” boleh diakses untuk mendapatkan semula butiran ralat tertentu seperti mesej pengecualian, surih tindanan atau kod ralat, membolehkan analisis terperinci dan penyahpepijatan.

Ralat terbaharu diwakili oleh objek ralat pertama dalam tatasusunan “ $Error[0] “. Anda boleh menggunakan pilihan biasa ErrorAction dengan nilai 'Abaikan' untuk menghentikan ralat daripada ditambahkan pada tatasusunan '$Error'.

Katakan kita menaip arahan yang tepat:

ip [ onfig

Sekarang, jika kita memasukkan cmdlet '$Error':

$ ralat

5. $PSCmdlet

Apabila bekerja dengan modul PowerShell, pembolehubah automatik ' $PSCmdlet ” berkuat kuasa. Pembolehubah ini menyediakan akses kepada contoh semasa cmdlet atau fungsi yang digunakan, memudahkan interaksi langsung dengan sifat dan kaedahnya.

Menggunakan '$PSCmdlet', pembangun skrip lanjutan boleh memperhalusi dan mempertingkatkan gelagat modul dengan memanjangkan atau mengubah suai fungsi terbina dalam. Anda boleh menggunakan atribut dan kaedah objek dalam cmdlet atau kod fungsi anda sebagai tindak balas kepada kriteria penggunaan:

fungsi jenis-psCmdlet {
[ cmdletBinding ( ) ] param ( )
bergema 'jenis ` $psCmdlet ialah $($psCmdlet.GetType() .Nama penuh)'
}

jenis-psCmdlet

Selain pembolehubah yang dinyatakan di atas, PowerShell merangkumi pembolehubah automatik seperti $HOME, $PROFILE, $PWD dan banyak lagi, yang berfungsi untuk tujuan yang berbeza, seperti mengakses input, ralat penjejakan, mendapatkan maklumat persekitaran, mengurus parameter dan banyak lagi. Pembolehubah ini disenaraikan di bawah:

Pembolehubah Automatik Penerangan
$$ Memegang token terakhir dalam baris sebelumnya yang diterima oleh sesi PowerShell.
$? Menyimpan status pelaksanaan perintah terakhir.
$^ Mengandungi token pertama baris terakhir yang diterima oleh sesi.
$_ Mewakili objek semasa dalam saluran paip.
$ConsoleFileName Mengandungi laluan fail konsol (.psc1) yang paling terkini digunakan dalam sesi.
$EnabledExperimentalFeatures Mengandungi senarai ciri percubaan yang didayakan.
$Event Mengandungi objek 'PSEventArgs' yang mewakili acara yang sedang diproses.
$EventArgs Mengandungi hujah peristiwa pertama acara yang sedang diproses.
$EventSubscriber Mewakili pelanggan acara acara yang sedang diproses.
$ExecutionContext Mewakili konteks pelaksanaan hos PowerShell.
$palsu Mewakili nilai Boolean 'Salah'.
$foreach Mengandungi enumerator gelung 'untuk-Setiap'.
$HOME Mengandungi laluan penuh direktori rumah pengguna.
$Host Mewakili aplikasi hos semasa untuk PowerShell.
$input Berfungsi sebagai enumerator untuk semua input yang dihantar ke fungsi atau skrip.
$IsCoreCLR Menunjukkan jika sesi berjalan pada .NET Core Runtime (CoreCLR).
$IsLinux Menunjukkan jika sesi berjalan pada sistem pengendalian Linux.
$IsMacOS Menunjukkan jika sesi berjalan pada sistem pengendalian MacOS.
$IsWindows Mengenal pasti jika sesi berjalan pada sistem pengendalian Windows.
$LASTEXITCODE Menyimpan kod keluar program asli terakhir atau skrip PowerShell.
$Matches Mengandungi rentetan yang dipadankan daripada pengendali '-match' dan '-notmatch'.
$NestedPromptLevel Menjejaki tahap gesaan semasa dalam perintah bersarang atau senario penyahpepijatan.
$null Mewakili nilai nol atau kosong.
$PID Mengandungi pengecam proses (PID) sesi PowerShell.
$PROFIL Mengandungi laluan penuh profil PowerShell untuk pengguna semasa dan aplikasi hos.
$PSBoundParameters Memegang kamus parameter yang dihantar kepada skrip atau fungsi dan nilainya.
$PSCommandPath Mengandungi laluan penuh dan nama fail skrip yang sedang dilaksanakan.
$PSCulture Mencerminkan budaya ruang larian PowerShell semasa.
$PSEdition Mengandungi maklumat edisi PowerShell.
$PSHOME Mengandungi laluan penuh direktori pemasangan PowerShell.
$PSItem Sama seperti $_, mewakili objek semasa dalam saluran paip.
$PSScriptRoot Mengandungi laluan penuh direktori induk skrip pelaksana.
$PSSenderInfo Mengandungi maklumat tentang pengguna yang memulakan PSSession.
$PSUICulture Mencerminkan budaya antara muka pengguna (UI) yang dikonfigurasikan dalam sistem pengendalian.
$PWD Mewakili direktori kerja semasa sesi PowerShell.
$Sender Mengandungi objek yang menghasilkan peristiwa.
$ShellId Mengandungi pengecam shell semasa.
$StackTrace Menyimpan jejak tindanan untuk ralat terbaharu.
$suis Mengandungi enumerator pernyataan 'Tukar'.
$ini Merujuk kepada contoh kelas dalam blok skrip yang memanjangkan kelas.
$benar Mewakili nilai Boolean 'Benar'.

Semua 'pembolehubah automatik' dalam PowerShell boleh didapati dengan menjalankan arahan di bawah:

Dapatkan-Pembolehubah

Kesimpulan

Pembolehubah Automatik ” membentuk tulang belakang skrip PowerShell, membenarkan pembangun mendapatkan maklumat tentang sistem, hujah baris perintah, konteks pelaksanaan skrip dan banyak lagi. Dengan memanfaatkan pembolehubah automatik seperti '$PSVersionTable', '$Args', '$MyInvocation', '$Error', dan lain-lain, pembangun skrip PowerShell boleh mencipta amalan pentadbiran sistem yang diperkemas.