ค้นหาเว็บไซต์

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

บทความที่เกี่ยวข้อง