วิธีทำให้ Powershell รัน Batch File และคงเปิดอยู่

หากคุณกำลังเปลี่ยนจาก Command Prompt เก่ามายัง Powershell คุณอาจพบปัญหาเล็กน้อย: วิธีการรัน batch file และทำให้หน้าต่าง Powershell เปิดอยู่หลังจากการรันเสร็จสิ้น กระบวนการนี้สามารถช่วยได้เมื่อคุณต้องการทำงานต่อกับผลลัพธ์หรือเช็คข้อมูลโดยไม่ต้องเปิด batch file อีกครั้ง ในโพสต์นี้เราจะอธิบายวิธีการทำให้ทำได้ง่าย ๆ

ปัญหาทั่วไป

ในสภาพแวดล้อม Command Prompt แบบคลาสสิก คุณสามารถรัน batch file และทำให้หน้าต่างเปิดอยู่โดยใช้คำสั่ง:

cmd.exe /k mybatchfile.bat

นี่จะทำให้สคริปต์ mybatchfile.bat ของคุณทำงานและทำให้ command prompt พร้อมรับคำสั่งต่อไป อย่างไรก็ตาม ใน Powershell สถานการณ์จะแตกต่างออกไปเล็กน้อยและเราจะอธิบายวิธีการแก้ปัญหานี้ให้คุณ

วิธีการแก้ปัญหา: การใช้ธง -noexit

กุญแจสำคัญในการทำให้หน้าต่าง Powershell เปิดอยู่คือการใช้พารามิเตอร์ -noexit เมื่อเรียก Powershell นี่คือวิธีการทำทีละขั้นตอน:

วิธีการทีละขั้นตอน

  1. เปิด Powershell: คุณสามารถเริ่มต้นโดยการเปิดแอปพลิเคชัน Powershell ของคุณ คุณสามารถค้นหา “Powershell” ในแถบค้นหาของ Windows

  2. ใส่คำสั่ง: พิมพ์คำสั่งต่อไปนี้ในหน้าต่าง Powershell:

    powershell -noexit -command "& 'C:\path\to\your\mybatchfile.bat'"
    
    • การวิเคราะห์คำสั่ง:
      • powershell: สิ่งนี้คือการเรียก Powershell เอง
      • -noexit: ธงนี้ทำให้เซสชัน Powershell ยังคงเปิดอยู่หลังจากคำสั่งทำงาน
      • -command: รายการนี้บอก Powershell ว่าคุณต้องการเรียกใช้คำสั่ง
      • & 'C:\path\to\your\mybatchfile.bat': ส่วนนี้ทำงาน batch file ของคุณ
  3. แก้ไขเส้นทางไฟล์: ตรวจสอบให้แน่ใจว่าคุณได้แทนที่ C:\path\to\your\mybatchfile.bat ด้วยเส้นทางที่แท้จริงของ batch file ของคุณในระบบ

ตัวอย่าง

สมมุติว่า batch file ของคุณตั้งอยู่ใน C:\Scripts\mybatchfile.bat คุณจะพิมพ์:

powershell -noexit -command "& 'C:\Scripts\mybatchfile.bat'"

ผลลัพธ์

โดยการทำตามคำแนะนำเหล่านี้ คุณควรเห็น batch file ทำงานและหน้าต่าง Powershell จะยังคงเปิดอยู่ทำให้คุณสามารถป้อนคำสั่งเพิ่มเติมได้ตามต้องการ วิธีการนี้เป็นวิธีที่ตรงไปตรงมาในการผสมผสาน batch files เข้ากับกระบวนการทำงานใน Powershell โดยไม่ต้องเริ่มต้นใหม่ทุกครั้ง

ความคิดสุดท้าย

การใช้พารามิเตอร์ -noexit เป็นวิธีที่ง่ายและมีประสิทธิภาพในการรัน batch files ใน Powershell ในขณะที่ทำให้เซสชันของคุณยัง active ซึ่งช่วยให้คุณสามารถจัดการกับสคริปต์และคำสั่งได้อย่างราบรื่นและยืดหยุ่นมากขึ้น

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