PowerShell สำหรับผู้เริ่มต้น (ตอนที่ 2): กริยาปรัชญา-คำนาม
ตอนนี้ หลังจากส่วนแรก PowerShell สำหรับผู้เริ่มต้น (ตอนที่ 1): คอนโซลและคำสั่งแรก เราจะอุทิศตนเองให้กับคำสั่ง แต่ก่อนที่เราจะเริ่มคำตอบของแบบฝึกหัดแรก เรายังมีการทบทวนสั้น ๆ ของส่วนแรกอีกด้วย
สามารถดูทุกส่วนของซีรีส์ได้ที่นี่: PowerShell สำหรับผู้เริ่มต้น (ซีรีส์)
รีวิว (ตอนที่ 1)
ออกกำลังกาย
ในส่วนแรกผมถามถึงวิธีการขอคำยืนยันคำสั่ง Stop-Computer
ค้นหาพารามิเตอร์เพื่อขอการยืนยันก่อนปิดคอมพิวเตอร์
(เคล็ดลับ: พิมพ์ Stop-Computer - แล้วกด TAB) วิธีแก้ปัญหาสามารถพบได้ในบทความถัดไป แต่ฉันคิดว่าคุณจะพบด้วยตัวเอง ? จำหลักปฏิบัติไว้!
หากคุณปฏิบัติตามเคล็ดลับของฉัน คุณจะพบว่ามีพารามิเตอร์ที่เรียกว่ายืนยัน เปิด Windows PowerShell เข้าสู่หยุดคอมพิวเตอร์ จากนั้นพิมพ์ - และกด TABแข็งแกร่ง>. หลังจากกดไม่กี่ครั้ง คุณจะพบพารามิเตอร์ยืนยัน
Stop-Computer -Confirm
สรุป
PowerShell คือภาษาสคริปต์อัตโนมัติระดับมืออาชีพสำหรับ Windows และ (เร็วๆ นี้) Linux PowerShell สามารถพบได้โดยใช้ Windows Search แต่ละคำสั่ง PowerShell ประกอบด้วยคำกริยาและคำนาม
ปรัชญา: กริยา-คำนาม
ตอนนี้เรามาถึงส่วนที่สองของซีรีส์แล้ว ในส่วนนี้ เราจะเน้นที่ PowerShell cmdlets ในเชิงรูปธรรมแล้ว ปรัชญาของคำสั่งเหล่านี้ แต่ละคำสั่ง PowerShell ที่เรียกว่า cmdlets ประกอบด้วยคำกริยาและคำนาม ซึ่งคั่นด้วยยัติภังค์ จำคำสั่งแรกของเรา Stop-Computer Stop เป็นคำกริยา และ Computer เป็นคำนาม นี่คือตัวอย่างบางส่วนของปรัชญาหรือแบบแผนการตั้งชื่อนี้:
Get-Date
Get-Process
Start-Process 'https:\\sid-500.com'
คำสั่งสุดท้ายเปิดเว็บไซต์ของฉัน Start-Process เริ่มกระบวนการ และถ้าคุณระบุเว็บไซต์ คำสั่งจะเปิดเว็บเบราว์เซอร์และนำคุณไปยังเว็บไซต์ของฉัน
เราได้เรียนรู้อะไรบ้างจนถึงตอนนี้?
คำสั่ง PowerShell แต่ละคำสั่งที่เรียกว่า cmdlet มีคำกริยาและคำนาม ซึ่งคั่นด้วยยัติภังค์
PowerShell cmdlet ที่สำคัญ: Get-Command
ซึ่งพาฉันไปที่คำสั่ง Get-Command Get-Command ช่วยให้คุณสามารถแสดงคำสั่ง PowerShell ที่มีอยู่ทั้งหมดได้ในคราวเดียว มาสำรวจคำสั่ง PowerShell ทั้งหมดกัน
พิมพ์
Get-Command
มีจำนวนมาก เพื่อให้ทุกอย่างชัดเจนยิ่งขึ้น เราสามารถใช้วิธีพิเศษได้ สำหรับสิ่งนี้เราจำเป็นต้องมีไปป์และคำสั่งเพิ่มเติม ไปป์เชื่อมต่อคำสั่ง ในแง่ที่เป็นรูปธรรม ไปป์จะนำทุกอย่างทางด้านซ้ายของไปป์และส่งต่อไปยังคำสั่งทางด้านขวาของไปป์ คุณสามารถค้นหาไปป์บนคีย์บอร์ดของคุณได้ น่าเสียดายที่คีย์บอร์ดแต่ละตัวมีความแตกต่างกันเล็กน้อย มองหาไอคอนนี้หรือกด ALT + 124
เราจะเน้นไปที่ท่อในภายหลัง ในตอนนี้จุดประสงค์ของไปป์คือการขัดจังหวะเอาท์พุตของหน้าจอ พิมพ์
Get-Command | more
ในตอนท้ายของหน้าจอมีบางอย่างเกิดขึ้น มีข้อความเพิ่มเติม หากคุณกด Enter เอาต์พุตจะขยายออกไปหนึ่งบรรทัด หากคุณกดสเปซบาร์ หน้าจอทั้งหมดจะถูกข้ามไป
ตอนนี้กด CTRL + C ซึ่งจะหยุดรับคำสั่ง
เราได้เรียนรู้อะไรบ้างจนถึงตอนนี้?
Get-Command แสดงคำสั่ง PowerShell ที่มีอยู่ทั้งหมด ด้วยฟังก์ชันเพิ่มเติม (และไปป์) คุณสามารถหยุดการเร่งเนื้อหาทั้งหมดผ่านหน้าต่างคอนโซลได้ CTRL+C หยุดแต่ละคำสั่ง
จะรับคำสั่งด้วยคำกริยาหรือคำนามได้อย่างไร?
ฉันแนะนำให้เล่นด้วยคำสั่ง “get” ก่อนเสมอ ทำไม คุณไม่สามารถทำลายระบบของคุณได้ รับคำสั่งเพียงรับบางอย่างเท่านั้น ไม่มีการดัดแปลง ดังนั้นงานในส่วนนี้คือการค้นหาคำสั่ง "get" ทั้งหมด ข้อควรจำ: รับคำกริยา มาค้นหาสิ่งที่ได้รับทั้งหมดโดยใช้พารามิเตอร์ง่ายๆ พิมพ์
Get-Command -Verb Get
ดี. พบสิ่งที่น่าสนใจบ้างไหม? ฉันทำ. รับโฮสต์
Get-Host
Get-Host แสดงข้อมูลเกี่ยวกับระบบของคุณ โดยเฉพาะ PowerShell ตัวอย่างเช่น คุณสามารถดูเวอร์ชัน PowerShell ของคุณได้ ของผมเป็น 5.1 นั่นเป็นเพียงการดูคำสั่ง Get เฉพาะอย่างรวดเร็ว มาต่อด้วยคำนามกันดีกว่า
หากต้องการค้นหาคำสั่งที่มีคำนามเฉพาะ เช่น วันที่ของคำนาม ให้รัน
Get-Command -Noun Date
ไม่ใช่เรื่องบังเอิญที่ฉันใช้คำนามนี้ วันที่มีเพียง 2 คำสั่ง นั่นไม่ได้ทำให้มันกว้างขวางเกินไป
เราได้เรียนรู้อะไรบ้างจนถึงตอนนี้?
รับคำสั่งไม่สามารถทำลายระบบของคุณได้ หากต้องการดูคำสั่งที่มีกริยาเฉพาะ ให้รัน Get-Command -Verb หากต้องการค้นหาคำนามเฉพาะ ให้รัน Get-Command -Noun Get-Host แสดงข้อมูลเกี่ยวกับเวอร์ชัน PowerShell
การใช้แท็บ
คุณสมบัติที่ดีคือการใช้ TAB หากคุณไม่ทราบเบาะแสเกี่ยวกับคำนาม ให้พิมพ์ Get-Command -Noun แล้วกด TAB น่าเสียดายที่วิธีนี้ใช้ได้เฉพาะกับคำนามเท่านั้น
แท็บ
วิธีแสดงรายการคำสั่งโดยใช้ไวด์การ์ด
สัญลักษณ์แทนคือตัวยึดตำแหน่งสำหรับค่าใดๆ อักขระไวด์การ์ดมักจะเป็น * หากคุณไม่พอใจกับการค้นหาด้วยคำกริยาหรือคำนาม คุณสามารถใช้อักขระตัวแทนได้ เช่น ฉันไม่รู้คำสั่งให้รีสตาร์ทคอมพิวเตอร์ ลองค้นหาคำสั่งที่มีคำว่ารีสตาร์ท โอเค โอเค เข้าใจแล้ว คุณต้องการค้นหาด้วยกริยา ไม่ นี่ไม่ใช่งานในส่วนนี้ ?
Get-Command *Restart*
ดีที่เราได้พบมันแล้ว เป็นการรีสตาร์ทคอมพิวเตอร์
ทบทวน
Wildcards (*) เป็นตัวยึดตำแหน่งสำหรับค่าใดๆ เหนือสิ่งอื่นใด พวกเขาทำให้การค้นหามีความยืดหยุ่นมากขึ้น ใช้ TAB เพื่อสำรวจทุกครั้งที่เป็นไปได้
รวมสองคำสั่ง (รีสตาร์ทคอมพิวเตอร์ในหนึ่งชั่วโมง)
นี่เป็นส่วนสุดท้ายของโพสต์บล็อกนี้ คุณชอบนอนไหม? ใช่? PowerShell ก็ชอบเช่นกัน พิมพ์ Start-Sleep และระบุช่วงเวลาเป็นวินาที
Start-Sleep -Seconds 10
PowerShell เข้าสู่โหมดสลีป เป็นเวลา 10 วินาที
ลองคิดดูก่อน ตอนนี้เราสามารถรวมสองคำสั่งเข้าด้วยกัน อันแรกจะเป็น Start-Sleep อันที่สองคือรีสตาร์ทคอมพิวเตอร์ เป้าหมายคือควรปิดคอมพิวเตอร์ภายในเวลาประมาณหนึ่งชั่วโมง สำหรับสิ่งนี้ เราจำเป็นต้องมีตัวคั่น เพื่อแยกคำสั่งทั้งสองออกจากกัน มันเป็นลูกน้ำประ พิมพ์
Start-Sleep -Seconds 3600; Restart-Computer
อย่างที่คุณเห็น PowerShell เข้าสู่โหมดสลีปเป็นเวลา 3600 วินาที หลังจากช่วงเวลานี้ คอมพิวเตอร์จะทำการรีสตาร์ท เชื่อฉันสิมันจะเกิดขึ้น! โดยมีเงื่อนไขว่าคุณไม่ปิด PowerShell การวางแผนสิ่งนี้ในงานตามกำหนดเวลาถือเป็นทางออกที่ดีกว่า แต่นั่นเป็นหัวข้อสำหรับโพสต์บล็อกขั้นสูง
เราได้เรียนรู้วิธีหยุดคำสั่งแล้ว กด CTRL + C เพื่อหยุดโหมดสลีปและกำหนดเวลารีสตาร์ท หรือรอดูคอมพิวเตอร์ของคุณปิดตัวลงหลังจากช่วงเวลาที่คุณกำหนดไว้
ทบทวน
เครื่องหมายจุลภาคทำให้คุณสามารถป้อนคำสั่งได้มากกว่าหนึ่งคำสั่ง คำสั่งจะถูกดำเนินการทีละคำสั่ง Start-Sleep สามารถช่วยคุณกำหนดเวลาการดำเนินการคำสั่งหรือรอบางอย่างในช่วงเวลาที่กำหนดได้
ออกกำลังกาย
จำหลักปฏิบัติของเรา:
ทำเอง สิ่งที่คุณไม่ได้ทำเองจะถูกลืมในไม่ช้า
แบบฝึกหัดในส่วนต่อไปคือ:
ค้นหาคำสั่งเพื่อทำบางสิ่งกับกระบวนการ ฉันหมายถึงกระบวนการของ Windows ใช้ Get-Command (ค้นหาคำนามด้วย wildcard หรือ TAB) เพื่อค้นหาคำนามทั้งหมด จากนั้นเปิดแผ่นจดบันทึก ลองปิดกระบวนการแผ่นจดบันทึกนี้ด้วย PowerShell
พบกันใหม่ในบทความ PowerShell สำหรับผู้เริ่มต้น (ตอนที่ 3): พารามิเตอร์
แพทริค กรูเนาเออร์ MVP PowerShell













