ผมมีประสบการณ์เกี่ยวกับการหน่วงเวลา (Delay) การรันคำสั่งหรือสคริปต์ในแบทช์ไฟล์ (Batch File) ในการจัดการเครื่องคอมพิวเตอร์ระบบ Windows มาแบ่งปันและแลกเปลี่ยนความคิดเห็นกับผู้อ่านครับ
การหน่วงเวลาการรันคำสั่งใน Batch File
การจัดการเครื่องคอมพิวเตอร์ระบบ Windows จำนวนมากๆ อย่างเช่นเครื่องในห้องปฏิบัติการคอมพิวเตอร์นั้น ผมจำเป็นต้องใช้แบทช์ไฟล์ (ไฟล์นามสกุล .bat) เพื่อเพิ่มรวดเร็วในการทำงาน และในการทำงานด้วยแบทช์ไฟล์ นั้นบางครั้งอาจมีการทำงานหลายอย่างหรือหลายคำสั่ง ดังนั้นเพื่อให้แน่ใจว่าแต่ละคำสั่งทำงานสำเร็จและถูกต้อง ผมจะใช้เทคนิคการหน่วงเวลาเพื่อหยุดการทำงานชั่วคราวเพื่อให้สามารถดูผลการทำงานได้
สำหรับวิธีหน่วงเวลาการรันคำสั่งในแบทช์ไฟล์ นั้นมีหลายวิธีให้เลือกใช้งาน แต่วิธีที่ผมใช้งานเป็นประจำมี 2 วิธี คือ การใช้คำสั่ง Pause และ Timeout ทั้ง 2 คำสั่งนี้จะหยุดการทำงานชั่วคราวเหมือนกัน แต่ต่างกันที่คำสั่ง Pause นั้นจะหยุดทำงานจนกว่าจะมีการกดปุ่มใดๆ ในขณะที่คำสั่ง Timeout นั้นจะหยุดทำงานตามระยะเวลาที่กำหนด เช่น 5 วินาที หรือ 10 วินาที เป็นต้น
ตัวอย่าง: การหน่วงเวลาการรันคำสั่งใน Batch File โดยใช้ Pause และ Timeout
สมมุติว่าต้องการสร้างแบทช์ไฟล์ สำหรับทำงานต่างๆ ดังต่อไปนี้
- ทำการเพิ่ม user1 เข้าเป็นสมาชิกกลุ่ม administrators
- หยุดการทำงาน 10 วินาที
- ลบ user2 ออกจากการเป็นสมาชิกกลุ่ม administrators
- หยุดการทำงานจนกว่าผู้ใช้กดปุ่มใดๆ
- ทำการล็อกออฟออกจาก Windows ทันที
จากตัวอย่างด้านบนสามารถสร้างเป็นแบทช์ไฟล์ อย่างง่ายที่ประกอบด้วยคำสั่ง ดังนี้
net localgroup administrators /add user1
timeout /t 10
net localgroup administrators /delete user2
pause
shutdown -f -l -t 0
รูปด้านล่างเป็นแบทช์ไฟล์ ของตัวอย่างด้านบน
เมื่อทำการรันแบทช์ไฟล์ (ต้องเปิดคอมมานด์พร้อมท์ด้วยสิทธิ์ผู้ดูแลระบบ) จะได้ผลการทำงานลักษณะดังรูปด้านล่าง (ในรูปนี้ผมปิดการทำงานคำสั่ง shutdown -f -l -t 0 นะครับ)
สรุป
วิธีการดูผลการทำงานของคำสั่งต่างๆ ที่ทำการรันในแบทช์ไฟล์ สามารถทำได้โดยการใช้คำสั่ง Pause และ Timeout ตามตัวอย่างด้านบน – ถ้าหากใครมีวิธีการอื่นๆ สามารถแนะนำได้ในส่วนความคิดเห็นครับ ขอบคุณครับ
ทิป: คำสั่ง Pause ยังสามารถใช้ในกรณีที่ไม่ต้องการปิดหน้าต่างคอมมานด์พร้อมท์เมื่อทำงานแล้วเสร็จได้อีกด้วย
ประวัติการปรับปรุง
19 กุมภาพันธ์ 2561: ปรับปรุงเนื้อหา
6 กันยายน 2560: เผยแพร่ครั้งแรก