โฮมเพจ » ทำอย่างไร » Geek School Learning ตัวแปร PowerShell อินพุตและเอาต์พุต

    Geek School Learning ตัวแปร PowerShell อินพุตและเอาต์พุต

    เมื่อเราย้ายออกจากการเรียกใช้คำสั่งและย้ายไปสู่การเขียนสคริปต์แบบเต็มคุณจะต้องมีที่เก็บข้อมูลชั่วคราว นี่คือที่มาของตัวแปร.

    อย่าลืมอ่านบทความก่อนหน้าในซีรีย์:

    • เรียนรู้วิธีอัตโนมัติของ Windows ด้วย PowerShell
    • เรียนรู้การใช้ Cmdlets ใน PowerShell
    • เรียนรู้วิธีใช้วัตถุใน PowerShell
    • การเรียนรู้การจัดรูปแบบการกรองและการเปรียบเทียบใน PowerShell
    • เรียนรู้การใช้ Remoting ใน PowerShell
    • การใช้ PowerShell เพื่อรับข้อมูลคอมพิวเตอร์
    • การทำงานกับคอลเล็กชันใน PowerShell

    และคอยติดตามตลอดซีรีย์ที่เหลือตลอดทั้งสัปดาห์.

    ตัวแปร

    ภาษาโปรแกรมส่วนใหญ่อนุญาตให้ใช้ตัวแปรซึ่งเป็นเพียงคอนเทนเนอร์ที่เก็บค่าไว้ ใน PowerShell เรามีตัวแปรเช่นกันและใช้งานง่ายมาก นี่คือวิธีการสร้างตัวแปรที่เรียกว่า“ FirstName” และให้ค่าเป็น“ Taylor”.

    $ FirstName =“ Taylor”

    สิ่งแรกที่คนส่วนใหญ่ดูเหมือนจะถามคือทำไมเราใส่เครื่องหมายดอลลาร์ไว้ข้างหน้าชื่อตัวแปรและนั่นเป็นคำถามที่ดีจริงๆ จริงๆแล้วเครื่องหมายดอลลาร์เป็นเพียงคำใบ้เล็ก ๆ น้อย ๆ ต่อเชลล์ที่เราต้องการเข้าถึงเนื้อหาของตัวแปร (คิดว่ามีอะไรอยู่ในคอนเทนเนอร์) และไม่ใช่คอนเทนเนอร์นั่นเอง ใน PowerShell ชื่อตัวแปรไม่รวมเครื่องหมายดอลลาร์ซึ่งหมายความว่าในตัวอย่างข้างต้นชื่อตัวแปรคือ“ FirstName”.

    ใน PowerShell คุณสามารถเห็นตัวแปรทั้งหมดที่คุณสร้างในตัวแปร PSDrive.

    ตัวแปร gci:

    ซึ่งหมายความว่าคุณสามารถลบตัวแปรออกจากเชลล์ได้ตลอดเวลาเช่นกัน:

    ตัวแปรลบรายการ: \ FirstName

    ตัวแปรไม่จำเป็นต้องมีวัตถุเดียวเช่นกัน คุณสามารถจัดเก็บวัตถุหลาย ๆ ตัวในตัวแปรได้อย่างง่ายดาย ตัวอย่างเช่นหากคุณต้องการจัดเก็บรายการกระบวนการที่กำลังทำงานอยู่ในตัวแปรคุณสามารถกำหนดผลลัพธ์ของกระบวนการรับได้.

    $ Proc = รับกระบวนการ

    เคล็ดลับในการทำความเข้าใจนี้คือการจำไว้ว่าทางด้านขวามือของเครื่องหมายเท่ากับได้รับการประเมินก่อนเสมอ ซึ่งหมายความว่าคุณสามารถมีทั้งท่อทางด้านขวาถ้าคุณต้องการ.

    $ CPUHogs = รับกระบวนการ | เรียงซีพียู -Descending | เลือก -First 3

    ตัวแปร CPUHogs จะมีกระบวนการทำงานสามกระบวนการโดยใช้ CPU ส่วนใหญ่.

    เมื่อคุณมีตัวแปรที่ถือคอลเลกชันของวัตถุมีบางสิ่งที่ต้องระวัง ตัวอย่างเช่นการเรียกเมธอดบนตัวแปรจะทำให้ถูกเรียกบนแต่ละออบเจ็กต์ในคอลเลกชัน.

    $ CPUHogs.Kill ()

    ซึ่งจะฆ่ากระบวนการทั้งสามในคอลเลกชัน หากคุณต้องการเข้าถึงวัตถุเดียวในตัวแปรคุณต้องปฏิบัติเหมือนเป็นอาร์เรย์.

    $ CPUHogs [0]

    การทำเช่นนั้นจะทำให้คุณมีวัตถุแรกในคอลเลกชัน.

    อย่าโดนจับ!

    ตัวแปรใน PowerShell ถูกพิมพ์อย่างอ่อนโดยค่าเริ่มต้นหมายถึงพวกเขาสามารถมีข้อมูลทุกชนิดดูเหมือนว่าจะดึงดูดผู้มาใหม่ให้กับ PowerShell ตลอดเวลา!

    $ a = 10

    $ b = '20'

    ดังนั้นเราจึงมีสองตัวแปรหนึ่งมีสตริงและอื่น ๆ จำนวนเต็ม แล้วจะเกิดอะไรขึ้นถ้าคุณเพิ่มเข้าไป ขึ้นอยู่กับว่าคุณสั่งซื้ออะไรเพิ่ม.

    $ a + $ b = 30

    ในขณะที่

    $ b + $ a = 2010

    ในตัวอย่างแรกตัวถูกดำเนินการแรกคือจำนวนเต็ม $ a ดังนั้น PowerShell คิดว่าคุณกำลังพยายามทำคณิตศาสตร์ดังนั้นจึงพยายามแปลงตัวถูกดำเนินการอื่นเป็นจำนวนเต็มเช่นกัน อย่างไรก็ตามในตัวอย่างที่สองตัวถูกดำเนินการตัวแรกคือสตริงดังนั้น PowerShell เพียงแค่แปลงส่วนที่เหลือของตัวถูกดำเนินการให้เป็นสตริงและเชื่อมโยงมันเข้าด้วยกัน สคริปเตอร์ขั้นสูงเพิ่มเติมป้องกันประเภทของ gotcha โดยการเลือกตัวแปรให้เป็นประเภทที่พวกเขาคาดหวัง.

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

    ด้านบนทั้งสองจะส่งผลให้ตัวแปร Number ที่มีวัตถุจำนวนเต็มมีค่า 5.

    อินพุตและเอาต์พุต

    เนื่องจาก PowerShell มีวัตถุประสงค์เพื่อทำให้สิ่งต่าง ๆ เป็นไปโดยอัตโนมัติคุณจะต้องการหลีกเลี่ยงการให้ผู้ใช้รับข้อมูลเมื่อเป็นไปได้ จากที่กล่าวมาจะมีบางครั้งที่คุณไม่สามารถหลีกเลี่ยงได้และในช่วงเวลานั้นเรามี cmdlet ของ Read-Host การใช้มันง่ายมาก:

    $ FirstName = อ่าน - โฮสต์ - พร้อมรับคำ 'ใส่ชื่อของคุณ'

    สิ่งที่คุณป้อนจะถูกบันทึกไว้ในตัวแปร.

    เอาต์พุตการเขียนเป็นเรื่องง่ายด้วย cmdlet สำหรับเขียน.

    ผลงานการเขียน“ How-To Geek Rocks!”

    เข้าร่วมกับเราในวันพรุ่งนี้ที่เราผูกทุกอย่างที่เราได้เรียนรู้ด้วยกัน!