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!”
เข้าร่วมกับเราในวันพรุ่งนี้ที่เราผูกทุกอย่างที่เราได้เรียนรู้ด้วยกัน!