Laman » bagaimana untuk » Pembelajaran Sekolah Geek PowerShell Pembolehubah, Input dan Output

    Pembelajaran Sekolah Geek PowerShell Pembolehubah, Input dan Output

    Ketika kita berpindah dari hanya menjalankan perintah dan beralih ke skrip yang ditiup penuh, anda memerlukan tempat sementara untuk menyimpan data. Inilah di mana pembolehubah masuk.

    Pastikan anda membaca artikel sebelumnya dalam siri ini:

    • Ketahui Bagaimana Mengotomatikkan Windows dengan PowerShell
    • Belajar Menggunakan Cmdlets di PowerShell
    • Belajar Cara Menggunakan Objek di PowerShell
    • Pemformatan Pembelajaran, Penapisan dan Pembandingan di PowerShell
    • Belajarlah Menggunakan Remoting dalam PowerShell
    • Menggunakan PowerShell untuk Dapatkan Maklumat Komputer
    • Bekerja dengan Koleksi di PowerShell

    Dan tunggu selama siri sepanjang minggu.

    Pembolehubah

    Kebanyakan bahasa pengaturcaraan membenarkan penggunaan pembolehubah, yang hanya merupakan kontainer yang memegang nilai. Di PowerShell, kami juga mempunyai pembolehubah dan mereka sangat mudah digunakan. Berikut ialah cara membuat pembolehubah yang dipanggil "FirstName" dan memberikan nilai "Taylor".

    $ FirstName = "Taylor"

    Perkara pertama yang kebanyakan orang bertanya ialah mengapa kami meletakkan tanda dolar di hadapan nama pembolehubah, dan itu sebenarnya merupakan persoalan yang sangat baik. Benar, tanda dolar hanyalah sedikit petunjuk kepada shell yang kita mahu mengakses kandungan pembolehubah (fikir apa yang ada di dalam bekas) dan bukannya bekas itu sendiri. Dalam PowerShell, nama pembolehubah tidak termasuk tanda dolar, yang bermaksud bahawa dalam contoh di atas, nama pembolehubah sebenarnya "FirstName".

    Dalam PowerShell, anda boleh melihat semua pembolehubah yang anda buat dalam PSDrive pembolehubah.

    pembolehubah gci:

    Ini bermakna anda boleh memadam pembolehubah dari shell pada bila-bila masa juga:

    Buang-Variabel Item: \ FirstName

    Pembolehubah tidak perlu mengandungi objek tunggal sama ada; anda boleh dengan mudah menyimpan pelbagai objek dalam pembolehubah. Contohnya, jika anda mahu menyimpan senarai proses yang sedang berjalan dalam pembolehubah, anda hanya dapat memperuntukkan output Get-Process.

    $ Proc = Get-Process

    Kesilapan untuk memahami ini adalah untuk mengingati bahawa sebelah kanan tanda bersamaan sentiasa dinilai terlebih dahulu. Ini bermakna anda boleh mempunyai keseluruhan saluran paip di sebelah kanan jika anda mahu.

    $ CPUHogs = Get-Process | Isih CPU -Descending | pilih -First 3

    Pemboleh ubah CPUHogs sekarang akan mengandungi tiga proses berjalan menggunakan CPU paling.

    Apabila anda mempunyai variabel yang memegang koleksi objek, ada beberapa perkara yang perlu diperhatikan. Sebagai contoh, memanggil kaedah pada pembolehubah akan menyebabkan ia dipanggil pada setiap objek dalam koleksi.

    $ CPUHogs.Kill ()

    Yang akan membunuh ketiga-tiga proses dalam koleksi itu. Jika anda ingin mengakses objek tunggal dalam pemboleh ubah, anda perlu merawatnya seperti array.

    $ CPUHogs [0]

    Melakukannya akan memberi anda objek pertama dalam koleksi.

    Jangan Terperangkap!

    Pembolehubah dalam PowerShell adalah ditaip secara lalai yang bermakna mereka boleh mengandungi apa-apa jenis data, ini seolah-olah menangkap pendatang baru untuk PowerShell sepanjang masa!

    $ a = 10

    $ b = '20'

    Oleh itu kita mempunyai dua pembolehubah, satu mengandungi rentetan dan satu lagi integer. Jadi apa yang berlaku jika anda menambahnya? Ia sebenarnya bergantung kepada perintah yang anda masukkan.

    $ a + $ b = 30

    Sementara itu

    $ b + $ a = 2010

    Dalam contoh pertama, pengendali pertama adalah integer, $ a, jadi ThinkShell menganggap bahawa anda cuba melakukan matematik dan oleh itu cuba menukar semua pengendali lain ke integer juga. Walau bagaimanapun, dalam contoh kedua pengendali pertama adalah rentetan, maka PowerShell hanya menukarkan seluruh operan kepada rentetan dan melambatkannya. Lebih banyak skrip yang lebih maju menghalang gotcha jenis ini dengan menghantar pemboleh ubah kepada jenis yang mereka harapkan.

    [int] $ Nombor = 5
    [int] $ Number = '5'

    Di atas kedua-duanya akan menghasilkan pembolehubah nombor yang mengandungi objek integer dengan nilai 5.

    Input dan Output

    Kerana PowerShell dimaksudkan untuk mengotomatisasi perkara-perkara, anda ingin mengelakkan pengguna meminta informasi untuk dimungkinkan. Dengan itu berkata, akan ada masa di mana anda tidak dapat mengelakkannya, dan pada masa itu kita mempunyai cmdlet Read-Host. Menggunakannya sangat mudah:

    $ FirstName = Baca-Host -Prompt 'Masukkan nama depan anda'

    Apa sahaja yang anda masukkan akan disimpan dalam pembolehubah.

    Output penulisan adalah sama dengan cmdlet Write-Output.

    Write-Output "How-To Geek Rocks!"

    Sertai kami esok di mana kami mengikat semua yang telah kami pelajari bersama!