Lompat ke konten

Asas PowerShell: Pengaturcaraan Dengan Gelung

    1651882981

    Dalam tutorial PowerShell ini kami menunjukkan kepada anda cara menggunakan gelung For, ForEach-Object dan gelung While, Do-While dan Do-Until.

    Gelung PowerShell, pada asasnya, hanya mengulang set arahan yang sama beberapa kali. Ideal untuk melakukan tindakan yang konsisten untuk tempoh masa yang ditetapkan atau bilangan rekod tertentu, gelung boleh memudahkan skrip anda dengan cara yang besar. PowerShell khususnya menampilkan beberapa cmdlet — terutamanya yang bermula dengan kata kerja Get — yang mengembalikan objek yang mengandungi sejumlah besar data serupa.

    Terdapat beberapa jenis gelung tersedia dalam PowerShell, dan dalam banyak kes lebih daripada satu teknik gelung boleh digunakan dengan berkesan. Kadangkala penentuan jenis gelung yang paling cekap diperlukan, sama ada dari perspektif prestasi atau kebolehbacaan kod.

    Gelung Untuk Setiap Objek

    Dalam kebanyakan kes menggunakan cmdlet ForEach-Object (sebelum ini dibincangkan dalam artikel kami tentang bekerja dengan objek PowerShell) ialah cara terbaik untuk menggelungkan objek. Pada yang paling mudah, ForEach-Object hanya memerlukan objek untuk digelung dan blok skrip yang mengandungi arahan untuk dilakukan pada setiap ahli objek.

    Parameter ini boleh ditentukan sama ada oleh nama parameter -InputObject dan -Process, atau dengan menyalurkan objek ke cmdlet ForEach-Object dan meletakkan blok skrip sebagai parameter pertama. Untuk menggambarkan sintaks asas ini, contoh berikut menunjukkan dua kaedah menggunakan ForEach-Object untuk menggelungkan kandungan folder Dokumen pengguna:

    $myDocuments = Get-ChildItem $env:USERPROFILEDocuments -Fail $myDocuments | ForEach-Object {$_.FullName} ForEach-Object -InputObject $myDocuments -Process {$_.FullName}

    Dalam senario tertentu mungkin berfaedah untuk melakukan satu atau lebih tindakan sejurus sebelum atau selepas gelung dilakukan. Parameter -Begin dan -End boleh digunakan untuk menentukan blok skrip untuk dilaksanakan sebelum atau selepas kandungan blok skrip -Process. Ini boleh digunakan untuk menetapkan atau mengubah suai pembolehubah sebelum atau selepas pelaksanaan gelung.

    ForEach-Object mempunyai dua alias, ForEach dan %, dan juga menyokong sintaks trengkas bermula dalam PowerShell 3.0. Tiga contoh berikut adalah sama dalam fungsi.

    Dapatkan-WMIObject Win32_LogicalDisk | ForEach-Object {$_.FreeSpace} Get-WMIObject Win32_LogicalDisk | ForEach {$_.FreeSpace} Get-WMIObject Win32_LogicalDisk | % Ruang kosong

    PowerShell Untuk Gelung

    Untuk gelung biasanya digunakan untuk melelaran melalui set perintah beberapa kali tertentu, sama ada untuk melangkah melalui tatasusunan atau objek, atau hanya untuk mengulang blok kod yang sama seperti yang diperlukan. A Untuk gelung dibina dengan menetapkan nilai pembolehubah apabila memasuki gelung, keadaan gelung harus ditamatkan dan tindakan yang perlu dilakukan terhadap pembolehubah itu setiap kali melalui gelung.

    Contoh berikut menunjukkan gelung For asas yang digunakan untuk mencipta jadual pendaraban:

    Untuk ($i=0; $i -le 10; $i++) { “10 * $i = ” + (10 * $i) }

    Untuk gelung boleh digunakan untuk melangkah melalui nilai tatasusunan dengan menetapkan nilai awal kepada indeks awal tatasusunan dan meningkatkan nilai secara berperingkat sehingga panjang tatasusunan dipenuhi. Indeks tatasusunan ditentukan dengan meletakkan pembolehubah bertambah di dalam kurungan segi empat sama serta-merta mengikut nama pembolehubah, seperti yang ditunjukkan dalam contoh berikut:

    $colors = @(“Merah”,”Oren”,”Kuning”,”Hijau”,”Biru”,”Indigo”,”Violet”) Untuk ($i=0; $i -lt $colors.Length; $ i++) { $warna[$i] }

    While, Do-While dan Do-Until Loops

    Jenis gelung ketiga yang disokong oleh PowerShell melibatkan penetapan syarat yang sama ada membenarkan gelung diproses selagi syarat itu benar atau sehingga ia dipenuhi. Gelung While dan Do-While kedua-duanya digunakan untuk melakukan tindakan manakala syarat dinilai kepada $true dan hanya berbeza dalam sintaksnya. Gelung Do-Until mempunyai sintaks yang serupa dengan Do-While, tetapi hentikan pemprosesan sebaik sahaja pernyataan syarat dipenuhi.

    Gelung Do-While dan Do-Until kedua-duanya bermula dengan kata kunci Do yang mendahului blok skrip, diikuti dengan kata kunci syarat (Semasa atau Sehingga) dan syarat. Sebagai contoh, dua gelung berikut berfungsi secara identik, hanya keadaan yang diterbalikkan:

    $i=1 Lakukan { $i $i++ } Manakala ($i -le 10)$i=1 Lakukan { $i $i++ } Sehingga ($i -gt 10)

    Walaupun gelung berprestasi sama dengan gelung Do-While, hanya sintaksnya diubah sedikit. While loops hanya menggunakan kata kunci While, diikuti dengan syarat, dan akhirnya blok skrip. Gelung ini adalah sama dalam fungsi dengan contoh sebelumnya, dan menggunakan keadaan yang sama seperti gelung Do-While:

    $i=1 Manakala ($i -le 10) { $i $i++ }

    Mana-mana daripada tiga jenis gelung ini — Gelung Do-While, Do-Until dan While — juga boleh digunakan untuk gelung selama-lamanya; While dan Do-While gelung dengan keadaan ditetapkan kepada $true dan Do-Until dengan keadaan ditetapkan kepada $false.

    Dalam sesetengah situasi, anda mungkin perlu keluar dari gelung lebih awal berdasarkan sesuatu selain daripada keadaan gelung. Dalam kes ini, kata kunci Break boleh digunakan untuk keluar daripada gelung. Contoh terakhir ini menunjukkan fungsi yang sama, tetapi menggunakan gelung tak terhingga dan kata kunci Break untuk keluar pada masa yang sesuai:

    $i=1 While ($true) { $i $i++ if ($i -gt 10) { Break } }

    BERKAITAN:

    Pengendali Perbandingan PowerShell dan Logik Bersyarat
    PowerShell: Menggunakan Pembolehubah, Tatasusunan dan Jadual Hash
    Asas PowerShell: Mengurus Fail dan Folder

    0 0 votes
    Rating post
    Subscribe
    Notify of
    guest
    0 comments
    Inline Feedbacks
    View all comments
    0
    Would love your thoughts, please comment.x
    ()
    x