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

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


5 เคล็ดลับสำคัญในการเรียกใช้สคริปต์ PowerShell เมื่อเปิดหน้าต่าง

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

1. ใช้คำสั่งหยุดชั่วคราว

วิธีแรกและตรงไปตรงมาที่สุดในการเปิดหน้าต่าง PowerShell ไว้หลังจากรันสคริปต์คือการใช้คำสั่ง Pause การแทรกคำสั่งนี้ที่ส่วนท้ายของสคริปต์ของคุณจะทำให้การทำงานของสคริปต์หยุดลง โดยแสดงข้อความ Press any key to Continue… ซึ่งช่วยให้คุณสามารถตรวจสอบผลลัพธ์ก่อนที่จะปิดหน้าต่างด้วยตนเอง นี่คือตัวอย่าง:

Write-Host “Hello, World!”
Pause

การเพิ่มคำสั่ง Pause ช่วยให้มั่นใจได้ว่าหน้าต่างยังคงเปิดอยู่ ทำให้คุณดูเอาต์พุตได้จนกว่าคุณจะตัดสินใจกดปุ่มใดๆ

2. เรียกใช้สคริปต์ PowerShell ร่วมกับ cmd.exe

อีกวิธีหนึ่งในการบรรลุผลลัพธ์ที่ต้องการในการเปิดหน้าต่าง PowerShell ไว้คือการใช้ Command Prompt แบบคลาสสิก (cmd.exe) กลยุทธ์นี้เกี่ยวข้องกับการสร้างแบตช์ไฟล์ (.bat) ที่จะเรียกใช้สคริปต์ PowerShell ของคุณและหยุดหน้าต่างพร้อมท์คำสั่งชั่วคราวหลังจากที่สคริปต์ดำเนินการเสร็จสิ้น ต่อไปนี้เป็นตัวอย่างลักษณะของไฟล์แบตช์:

@echo off
PowerShell.exe -NoProfile -ExecutionPolicy Bypass -File “C:pathtoyourscript.ps1”
pause

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

3. ใช้คำสั่ง read-host

อีกวิธีหนึ่งในการเปิดหน้าต่างไว้คือการใช้คำสั่ง Read-Host ที่ส่วนท้ายของสคริปต์ PowerShell คำสั่งนี้จะแจ้งให้ผู้ใช้ป้อนข้อมูล และหยุดการทำงานของสคริปต์ชั่วคราวจนกว่าผู้ใช้จะกด ENTER ตัวอย่างเช่น:

Write-Host “Hello, World!”
Read-Host “Press ENTER to exit”

วิธีการนี้ช่วยให้แน่ใจว่าหน้าต่าง PowerShell ยังคงเปิดอยู่โดยกำหนดให้ผู้ใช้ป้อนข้อมูลก่อนดำเนินการต่อ

4. แก้ไขนโยบายการดำเนินการและเรียกใช้สคริปต์จากเซสชัน PowerShell ที่มีอยู่

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

Set-ExecutionPolicy RemoteSigned

หลังจากตั้งค่านโยบายการดำเนินการแล้ว ให้นำทางไปยังโฟลเดอร์ที่มีสคริปต์ของคุณโดยใช้คำสั่ง Set-Location (หรือ cd) และรันสคริปต์ด้วยไวยากรณ์ต่อไปนี้:

.your-script.ps1

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

5. ใช้คำสั่ง Start-Transcript และ Stop-Transcript

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

Start-Transcript -Path “C:pathtooutput-log.txt”
# Your script code
Stop-Transcript

ด้วยวิธีนี้ คุณสามารถตรวจสอบบันทึกผลลัพธ์ได้ตามต้องการ และไม่ต้องกังวลกับการเปิดหน้าต่าง PowerShell ไว้

บทสรุป

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

ฉันจะรันสคริปต์ PowerShell และเปิดหน้าต่างคอนโซลไว้หลังจากที่สคริปต์ทำงานเสร็จแล้วได้อย่างไร

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

วิธีที่ 1: การใช้คำสั่ง หยุดชั่วคราว

เพิ่มบรรทัดต่อไปนี้ที่ส่วนท้ายของสคริปต์ PowerShell ของคุณ:

pause

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

วิธีที่ 2: การใช้พารามิเตอร์ -NoExit

เมื่อเรียกใช้สคริปต์ PowerShell จากทางลัดหรือสคริปต์อื่น คุณสามารถรวมพารามิเตอร์ -NoExit เพื่อให้หน้าต่างคอนโซลเปิดอยู่หลังจากการเรียกใช้สคริปต์ นี่คือตัวอย่าง:

powershell.exe -NoExit -File “C:pathtoyourscript.ps1”

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

วิธีที่ดีที่สุดในการหยุดการทำงานของสคริปต์ PowerShell และรอการป้อนข้อมูลของผู้ใช้ก่อนที่จะปิดหน้าต่างคืออะไร

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

นี่คือตัวอย่างวิธีการใช้งาน:

Write-Host “Press any key to continue…”
$userInput = Read-Host

Read-Host cmdlet จะหยุดการทำงานของสคริปต์ชั่วคราวและรอให้ผู้ใช้ป้อนข้อมูลตามด้วยการกด Enter เมื่อผู้ใช้ป้อนข้อมูลแล้วกด Enter สคริปต์จะดำเนินการต่อไป

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

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

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

Set-ExecutionPolicy RemoteSigned

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

ก. เรียกใช้สคริปต์จากคอนโซล PowerShell ที่มีอยู่โดยเปิดคอนโซลแล้วพิมพ์: .your_script.ps1 หรือ
b. แก้ไขสคริปต์เพื่อรวมคำสั่ง pause เช่น Read-Host -Prompt Press Enter เพื่อออก ที่ส่วนท้ายของสคริปต์

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

4. ตรวจสอบสถานะการเสร็จสิ้นสคริปต์: อาจเป็นไปได้ว่าสคริปต์กำลังทำงานตามที่คาดไว้ แต่คอนโซลปิดเร็วเกินไปที่จะตรวจสอบผลลัพธ์ หากต้องการตรวจสอบ ให้เพิ่มบรรทัดที่ท้ายสคริปต์เพื่อส่งออกเอาต์พุตไปยังไฟล์บันทึก เช่น Out-File -FilePath C:pathtolog.txt

5. การหมดเวลาการดำเนินการ: สคริปต์ PowerShell ไม่มีการจำกัดเวลาโดยธรรมชาติที่กำหนดไว้ แต่ปัจจัยภายนอก (เช่น นโยบายกลุ่ม) อาจส่งผลกระทบต่อสคริปต์เหล่านี้ ตรวจสอบการตั้งค่าหรือนโยบายที่อาจทำให้คอนโซลปิดก่อนเวลาอันควร

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

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