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

การเรียนรู้ PowerShell: คำแนะนำที่ครอบคลุมเกี่ยวกับวิธีการเรียกใช้ไฟล์แบตช์ได้อย่างง่ายดาย


7 ขั้นตอนในการเรียกใช้ไฟล์ PowerShell Batch ให้สำเร็จ: คู่มือที่ครอบคลุมสำหรับวิศวกรซอฟต์แวร์ผู้เชี่ยวชาญ

ในโลกที่ระบบอัตโนมัติเป็นสิ่งสำคัญ การรันไฟล์แบตช์หรือสคริปต์กลายเป็นงานสำคัญสำหรับวิศวกรซอฟต์แวร์ทุกคน กาลครั้งหนึ่ง John ซึ่งเป็นวิศวกรซอฟต์แวร์มากประสบการณ์ซึ่งใฝ่ฝันว่าจะทำให้งานประจำวันของเขาเป็นไปโดยอัตโนมัติ บังเอิญไปพบกับเครื่องมืออันทรงพลังชื่อ PowerShell คุณอยากรู้ไหมว่าเขาใช้ประโยชน์จากพลังของเครื่องมืออเนกประสงค์นี้เพื่อสร้างและรันไฟล์แบตช์ที่มีประสิทธิภาพ ซึ่งท้ายที่สุดแล้วจะช่วยเพิ่มประสิทธิภาพการทำงานของเขาได้อย่างไร อ่านต่อเพื่อเปิดเผยความลับเบื้องหลังความสำเร็จของ John และเรียนรู้วิธีเรียกใช้ไฟล์แบตช์ PowerShell อย่างมีประสิทธิภาพใน 7 ขั้นตอนง่ายๆ

โปรดทราบ: บทความนี้จะถือว่าผู้อ่านคุ้นเคยกับแนวคิดและคำศัพท์พื้นฐานของ PowerShell

ขั้นตอนที่ 1: สร้างไฟล์สคริปต์ PowerShell

John เริ่มต้นด้วยการสร้างเอกสารข้อความใหม่โดยใช้โปรแกรมแก้ไขข้อความมาตรฐาน (เช่น Notepad) จากนั้นเขาก็พิมพ์คำสั่ง PowerShell โดยแต่ละคำสั่งแยกบรรทัดกัน หลังจากตรวจสอบข้อผิดพลาดของสคริปต์อย่างละเอียดแล้ว John ได้บันทึกไฟล์ด้วยนามสกุล .ps1 ซึ่งระบุว่าเป็นไฟล์สคริปต์ PowerShell สิ่งสำคัญคือต้องจำไว้ว่าต้องตั้งค่านโยบายการดำเนินการสคริปต์อย่างถูกต้องเพื่อเรียกใช้สคริปต์ PowerShell เราจะมาหารือเรื่องนี้เพิ่มเติมในขั้นตอนถัดไป

ขั้นตอนที่ 2: กำหนดค่านโยบายการดำเนินการ

ก่อนที่จะรันสคริปต์ John จำเป็นต้องตรวจสอบให้แน่ใจว่านโยบายการดำเนินการได้รับการกำหนดค่าอย่างเหมาะสม ตามค่าเริ่มต้น PowerShell มีนโยบายการดำเนินการที่จำกัด ซึ่งป้องกันไม่ให้สคริปต์ถูกเรียกใช้งาน เพื่อข้ามข้อจำกัดนี้ John ตัดสินใจตั้งค่านโยบายการดำเนินการเป็น RemoteSigned หรือ Unrestricted โดยการเรียกใช้คำสั่งต่อไปนี้ในคอนโซล PowerShell การดูแลระบบ:

Set-ExecutionPolicy RemoteSigned
“`
_OR_
“`
Set-ExecutionPolicy Unrestricted

_โปรดจำไว้ว่าการเรียกใช้สคริปต์จากแหล่งที่ไม่น่าเชื่อถืออาจเป็นอันตรายได้ ดังนั้นควรเลือกนโยบายการดำเนินการอย่างชาญฉลาด_

ขั้นตอนที่ 3: ทดสอบสคริปต์ในคอนโซล PowerShell

John เชื่อในปรัชญา measure two, cut one ดังนั้นเขาจึงทดสอบสคริปต์ของเขาอย่างละเอียดในคอนโซล PowerShell ก่อนที่จะดำเนินการต่อ เขาเปิดคอนโซล PowerShell ใหม่และนำทางไปยังโฟลเดอร์ที่มีสคริปต์ จากนั้นเขาพิมพ์คำสั่งต่อไปนี้เพื่อรันสคริปต์:

.script_name.ps1

การทดสอบทำให้ John สามารถระบุปัญหาทางไวยากรณ์หรือข้อผิดพลาดทางตรรกะภายในสคริปต์ของเขาได้ ทำให้เขาสามารถแก้ไขได้ก่อนที่จะเรียกใช้เป็นไฟล์แบตช์

ขั้นตอนที่ 4: สร้างไฟล์แบตช์เพื่อเรียกใช้สคริปต์ PowerShell

เมื่อสคริปต์ของเขาได้รับการทดสอบและปรับปรุงแล้ว จอห์นจึงดำเนินการสร้างแบตช์ไฟล์เพื่อเรียกใช้สคริปต์ เขาสร้างเอกสารข้อความใหม่โดยใช้โปรแกรมแก้ไขข้อความมาตรฐานและพิมพ์คำสั่งต่อไปนี้:

@echo off
PowerShell.exe -NoProfile -ExecutionPolicy Bypass -Command “& {Start-Process PowerShell.exe -ArgumentList ‘-NoProfile -ExecutionPolicy Bypass -File “”%~dpn0.ps1″”‘ -Verb RunAs}”

คำสั่งนี้สั่งให้ระบบข้ามนโยบายการดำเนินการและเรียกใช้สคริปต์ PowerShell ด้วยสิทธิ์ระดับผู้ดูแลระบบ หลังจากพิมพ์คำสั่งนี้ John ได้บันทึกไฟล์ด้วยนามสกุล .bat เพื่อระบุว่าเป็นไฟล์แบตช์

ขั้นตอนที่ 5: ทดสอบไฟล์แบตช์

ลักษณะที่พิถีพิถันของ John ทำให้เขาทดสอบไฟล์แบตช์ที่สร้างขึ้นใหม่ก่อนที่จะกำหนดเวลาหรือทำให้เป็นอัตโนมัติ เขาคลิกสองครั้งที่ไฟล์แบตช์และสังเกตผลลัพธ์ เพื่อให้แน่ใจว่าได้รันสคริปต์ PowerShell ตามที่คาดไว้

ขั้นตอนที่ 6: กำหนดเวลางานผ่าน Task Scheduler (ไม่บังคับ)

เมื่อไฟล์แบตช์ได้รับการตรวจสอบแล้วว่าทำงานได้อย่างถูกต้อง John จึงตัดสินใจกำหนดเวลาให้งานทำงานโดยอัตโนมัติตามช่วงเวลาที่กำหนด เขาใช้ Windows Task Scheduler ในตัวเพื่อบรรลุเป้าหมายนี้ เขาเปิด Task Scheduler สร้างงานใหม่ และกำหนดค่างานให้เรียกใช้ไฟล์แบตช์ภายใต้แท็บ การทำงาน ใต้แท็บ ทริกเกอร์ เขาตั้งเวลาที่ต้องการสำหรับงานของเขา

ขั้นตอนที่ 7: ตรวจสอบการดำเนินการงาน (ไม่บังคับ)

หลังจากกำหนดเวลางานอัตโนมัติแล้ว John คอยจับตาดูประสิทธิภาพเพื่อให้แน่ใจว่างานทำงานได้อย่างราบรื่น เขาตรวจสอบแท็บ ประวัติงาน ของ Task Scheduler และตรวจสอบบันทึกเอาต์พุตเพื่อยืนยันว่าสคริปต์ PowerShell ของเขาทำงานตามที่คาดไว้ในช่วงเวลาที่ระบุ

ด้วยการทำตามขั้นตอนง่าย ๆ เจ็ดขั้นตอนนี้ John ได้ปลดล็อกศักยภาพที่แท้จริงของไฟล์แบตช์ PowerShell ทำให้เขาทำงานอัตโนมัติได้อย่างง่ายดาย ตอนนี้ถึงตาคุณแล้ว ใช้ขั้นตอนเหล่านี้กับขั้นตอนการทำงานของคุณและร่วมกับ John ในการควบคุมพลังของไฟล์แบตช์ PowerShell เพื่อปรับปรุงงานของคุณและปรับปรุงประสิทธิภาพการทำงานของคุณในฐานะวิศวกรซอฟต์แวร์

Windows Powershell กับ Command Prompt: อะไรคือความแตกต่าง?

ติดตั้งซอฟต์แวร์โดยใช้ Powershell ใน Windows 10

ฉันจะรันสคริปต์ PowerShell โดยใช้แบตช์ไฟล์ได้อย่างไร

ในการรันสคริปต์ PowerShell โดยใช้แบตช์ไฟล์ คุณสามารถทำตามขั้นตอนเหล่านี้:

1. สร้างสคริปต์ PowerShell (.ps1) ด้วยคำสั่งที่ต้องการ
2. เขียนแบตช์ไฟล์ (.bat) ด้วยคำสั่งที่จำเป็นเพื่อเรียกใช้ สคริปต์ PowerShell

ต่อไปนี้คือตัวอย่างวิธีรันสคริปต์ PowerShell ชื่อ MyScript.ps1 โดยใช้ไฟล์แบตช์ชื่อ RunScript.bat:

RunScript.bat:

@echo off
Powershell.exe -ExecutionPolicy Bypass -NoProfile -File “MyScript.ps1”

คำสั่งในไฟล์แบตช์ทำดังต่อไปนี้:

- Powershell.exe: เปิดโปรแกรมปฏิบัติการ PowerShell
- -ExecutionPolicy Bypass: ตั้งค่าการดำเนินการ นโยบายที่จะเลี่ยงผ่าน ทำให้สคริปต์สามารถทำงานได้โดยไม่มีข้อจำกัดใดๆ
- -NoProfile: ข้ามการโหลดโปรไฟล์ของผู้ใช้ ทำให้การดำเนินการเร็วขึ้น
- -ไฟล์ “MyScript.ps1″: ระบุสคริปต์ PowerShell ที่จะดำเนินการ

หลังจากสร้างทั้งสคริปต์ PowerShell และแบตช์ไฟล์แล้ว เพียงดับเบิลคลิกที่ RunScript.bat หรือดำเนินการจากบรรทัดคำสั่งเพื่อเรียกใช้สคริปต์ PowerShell ของคุณ

ฉันจะรันสคริปต์ PowerShell จากไฟล์ได้อย่างไร

หากต้องการรันสคริปต์ PowerShell จากไฟล์ ให้ทำตามขั้นตอนเหล่านี้:

1. เปิดบรรทัดคำสั่ง PowerShell โดยค้นหาในเมนู Start หรือโดยการกด Win + X และเลือก Windows PowerShell

2. ก่อนที่จะรันสคริปต์ใดๆ คุณต้องอัปเดตนโยบายการดำเนินการสคริปต์โดยดำเนินการคำสั่งต่อไปนี้:

Set-ExecutionPolicy RemoteSigned

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

3. นำทางไปยังโฟลเดอร์ที่มีสคริปต์ PowerShell ของคุณโดยใช้คำสั่ง cd ตัวอย่างเช่น หากสคริปต์ของคุณอยู่ในโฟลเดอร์ Documents ให้ใช้:

cd C:UsersDocuments

แทนที่ “ ด้วยชื่อผู้ใช้ Windows ของคุณ

4. สุดท้ายรันสคริปต์โดยพิมพ์คำสั่งต่อไปนี้:

.YourScriptName.ps1

แทนที่ YourScriptName.ps1 ด้วยชื่อจริงของสคริปต์ PowerShell ของคุณ

โปรดจำไว้ว่า นโยบายการดำเนินการ และ ชื่อสคริปต์ PowerShell เป็นส่วนสำคัญในการเรียกใช้สคริปต์ PowerShell จากไฟล์

คุณจะรันไฟล์แบตช์จากภายในสคริปต์ PowerShell ได้อย่างไร

หากต้องการเรียกใช้แบตช์ไฟล์จากภายในสคริปต์ PowerShell คุณสามารถใช้เมธอด Start-Process หรือ & (ตัวดำเนินการโทร) นี่คือสองตัวอย่าง:

1. การใช้กระบวนการเริ่มต้น:

Start-Process -FilePath “pathtoyourbatchfile.bat” -Wait -NoNewWindow

ในตัวอย่างนี้ คำสั่ง Start-Process ใช้เพื่อรันไฟล์แบตช์ พารามิเตอร์ -Wait ช่วยให้มั่นใจว่าสคริปต์ PowerShell รอให้การดำเนินการแบตช์ไฟล์เสร็จสิ้นก่อนดำเนินการต่อ พารามิเตอร์ -NoNewWindow ช่วยให้มั่นใจได้ว่าไฟล์แบตช์จะทำงานในหน้าต่างคอนโซลเดียวกัน

<แข็งแกร่ง>2. การใช้ & (ตัวดำเนินการโทร):

& “pathtoyourbatchfile.bat”

ในตัวอย่างนี้ & (โอเปอเรเตอร์การโทร) ใช้เพื่อเรียกใช้งานไฟล์แบตช์ วิธีนี้ง่ายกว่าแต่ไม่ได้ให้การควบคุมในระดับเดียวกับวิธี Start-Process

อย่าลืมแทนที่ ”pathtoyourbatchfile.bat” ด้วยเส้นทางที่ถูกต้องไปยังไฟล์แบตช์ของคุณในทั้งสองตัวอย่าง

ฉันจะรัน PowerShell จากพรอมต์คำสั่งได้อย่างไร

หากต้องการดำเนินการ PowerShell จากพรอมต์คำสั่ง ให้ทำตามขั้นตอนเหล่านี้:

1. เปิด Command Prompt โดยค้นหา cmd ในเมนู Start หรือกด Win + R แล้วพิมพ์ cmd ในกล่องโต้ตอบ Run
2. เมื่อ Command Prompt เปิดขึ้น ให้พิมพ์คำสั่งต่อไปนี้แล้วกด Enter:

powershell

การดำเนินการนี้จะเปิดอินเทอร์เฟซบรรทัดคำสั่งของ PowerShell ภายในหน้าต่างพร้อมรับคำสั่ง

3. ตอนนี้คุณสามารถรันคำสั่งหรือสคริปต์ PowerShell ได้โดยตรงจากบรรทัดคำสั่ง

โปรดทราบว่าหากคุณต้องการใช้ PowerShell โดยไม่ต้องเปลี่ยนจาก Command Prompt คุณสามารถนำหน้าคำสั่ง PowerShell ด้วย powershell.exe ตามด้วยคำสั่งที่อยู่ในเครื่องหมายคำพูดเดี่ยวหรือคู่ เช่นนี้

powershell.exe “Get-ChildItem”

คำสั่งนี้จะดำเนินการ Get-ChildItem PowerShell cmdlet ภายในพร้อมท์คำสั่ง โดยไม่ต้องสลับไปใช้อินเทอร์เฟซ PowerShell

ฉันจะรันสคริปต์ PowerShell (*.ps1) ภายในแบตช์ไฟล์และส่งพารามิเตอร์ไปยังสคริปต์ได้อย่างไร

หากต้องการรันสคริปต์ PowerShell (*.ps1) ภายในแบตช์ไฟล์และส่งพารามิเตอร์ไปยังสคริปต์ ให้ทำตามขั้นตอนเหล่านี้:

1. สร้างไฟล์สคริปต์ PowerShell ของคุณ (เช่น script.ps1) และบันทึกลงในไดเรกทอรีเฉพาะ

2. สร้างไฟล์แบตช์ใหม่ (เช่น script.bat) และเปิดโดยใช้โปรแกรมแก้ไขข้อความ เช่น Notepad

3. ในแบตช์ไฟล์ ให้ป้อนคำสั่งต่อไปนี้:

powershell.exe -ExecutionPolicy Bypass -File “C:pathtoyourscript.ps1” -Param1 “parameter1” -Param2 “parameter2”

แทนที่ parameter1 และ parameter2 ด้วยพารามิเตอร์เฉพาะ คุณต้องการส่งต่อไปยังสคริปต์ ตรวจสอบให้แน่ใจว่าคุณอัปเดตเส้นทางให้ตรงกับตำแหน่งของไฟล์สคริปต์ PowerShell ของคุณ

4. บันทึกไฟล์แบตช์และดับเบิลคลิกเพื่อรันสคริปต์ PowerShell ด้วยพารามิเตอร์ที่ระบุ

ธง -ExecutionPolicy Bypass ในคำสั่งอนุญาตให้เรียกใช้สคริปต์ได้โดยไม่ถูกบล็อกโดยนโยบายการดำเนินการของระบบ หากสคริปต์ PowerShell ของคุณยอมรับพารามิเตอร์ที่มีชื่อ ตรวจสอบให้แน่ใจว่าได้ระบุพารามิเตอร์เหล่านั้นด้วยชื่อพารามิเตอร์ที่เกี่ยวข้อง (เช่น -Param1, -Param2)

วิธีที่เหมาะสมในการรันคำสั่ง PowerShell หลายคำสั่งตามลำดับภายในไฟล์แบตช์เดียวคืออะไร

ในบริบทบรรทัดคำสั่งของ PowerShell วิธีที่เหมาะสมในการเรียกใช้คำสั่ง PowerShell หลายคำสั่งตามลำดับภายในไฟล์แบตช์เดียวคือการสร้างไฟล์สคริปต์ที่มีนามสกุล .ps1 และแสดงรายการคำสั่งของคุณตามลำดับที่คุณต้องการ พวกเขาจะดำเนินการ จากนั้น คุณสามารถรันสคริปต์จากบรรทัดคำสั่งหรือภายในสคริปต์อื่นโดยใช้คำสั่ง powershell.exe

ต่อไปนี้คือวิธีที่คุณสามารถสร้างและรันสคริปต์ด้วยคำสั่ง PowerShell หลายคำสั่ง:

1. สร้างไฟล์ข้อความใหม่และบันทึกด้วยนามสกุล .ps1 เช่น MyScript.ps1

2. เปิดไฟล์สคริปต์ในโปรแกรมแก้ไขข้อความที่คุณชื่นชอบ เช่น Notepad หรือ Visual Studio Code

3. เขียนคำสั่ง PowerShell ของคุณ หนึ่งคำสั่งต่อบรรทัด ตามลำดับที่คุณต้องการให้ดำเนินการ ตัวอย่างเช่น:

Get-ChildItem
Get-Date

4. บันทึกไฟล์สคริปต์

5. หากต้องการเรียกใช้สคริปต์จากบรรทัดคำสั่ง ให้เปิด คอนโซล PowerShell หรือ พร้อมรับคำสั่ง นำทางไปยังโฟลเดอร์ที่คุณบันทึกสคริปต์ และพิมพ์คำสั่งต่อไปนี้:

powershell.exe -ExecutionPolicy Bypass -File .MyScript.ps1

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

อย่าลืมแทนที่ MyScript.ps1 ด้วยชื่อจริงของไฟล์สคริปต์ของคุณ

ฉันจะตั้งค่านโยบายการดำเนินการ PowerShell เพื่ออนุญาตให้เรียกใช้สคริปต์ที่ลงนามและไม่ได้ลงนามภายในแบตช์ไฟล์ได้อย่างไร

ในบรรทัดคำสั่ง PowerShell คุณสามารถตั้งค่านโยบายการดำเนินการเพื่ออนุญาตให้เรียกใช้สคริปต์ทั้งที่ลงนามและไม่ได้ลงนามภายในแบตช์ไฟล์โดยใช้ Set-ExecutionPolicy cmdlet พร้อมด้วย Unrestricted พารามิเตอร์. การกำหนดค่านี้อนุญาตให้สคริปต์ทำงานโดยไม่คำนึงถึงสถานะการลงนาม

ทำตามขั้นตอนเหล่านี้เพื่อตั้งค่านโยบายการดำเนินการ:

1. เปิดคอนโซล PowerShell ด้วยสิทธิ์ผู้ดูแลระบบ เมื่อต้องการทำเช่นนี้ ให้ค้นหา PowerShell ในเมนู Start คลิกขวาที่ Windows PowerShell และเลือก Run as administrator

2. หากต้องการตั้งค่านโยบายการดำเนินการเป็นไม่จำกัด ให้รันคำสั่งต่อไปนี้:

Set-ExecutionPolicy Unrestricted

3. คุณจะได้รับแจ้งให้ยืนยันการเปลี่ยนแปลง พิมพ์ Y (ใช่) หรือ A (ใช่ทั้งหมด) แล้วกด Enter

4. ตอนนี้คุณสามารถเรียกใช้สคริปต์ทั้งที่ลงนามและไม่ได้ลงนามภายในไฟล์แบตช์ของคุณ

โปรดทราบว่าการตั้งค่านโยบายการดำเนินการเป็นไม่จำกัดนั้นก่อให้เกิดความเสี่ยงด้านความปลอดภัย เนื่องจากจะทำให้สคริปต์ใดๆ ทำงานได้ แม้แต่สคริปต์ที่อาจเป็นอันตรายก็ตาม หากคุณต้องการตัวเลือกที่ปลอดภัยยิ่งขึ้น ให้พิจารณาใช้นโยบาย RemoteSigned แทน นโยบายนี้อนุญาตให้เรียกใช้สคริปต์ในเครื่องที่ไม่ได้ลงนาม แต่ต้องมีการลงนามสคริปต์ระยะไกล (เช่น ดาวน์โหลดจากอินเทอร์เน็ต) โดยผู้เผยแพร่ที่เชื่อถือได้

หากต้องการตั้งค่านโยบายการดำเนินการเป็น RemoteSigned ให้รันคำสั่งต่อไปนี้:

Set-ExecutionPolicy RemoteSigned

เช่นเคย ให้ยืนยันการเปลี่ยนแปลงด้วย Y หรือ A

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

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