04 กรกฎาคม 2558

ทำความรู้จักกับ Batch File



     Batch File เป็นการเปิดช่องทางการ Interface ระหว่าง ผู้ใช้งาน ( Peopleware ) กับระบบคอมพิวเตอร์ อย่างชาญฉลาดของผู้สร้างระบบปฏิบัติการ DOS ก่อนอื่นต้องทำความเข้าใจกับส่วนประกอบต่างๆ ก่อน โดยปกติคำสั่งที่ใช้กับระบบคอมพิวเตอร์โดยเฉพาะ OS ที่เป็น DOS จะมีคำสั่งที่สามารถสั่งให้คอมพิวเตอร์ทำงานได้อยู่ 3 ประเภท คือ
1.Command File ( .com )
2.Execute File ( .exe )
3.Batch File ( .bat )

     Command File และ Execute File เป็น File ที่บรรจุคำสั่งที่เป็นรหัสเลขฐานสอง หรือ เรียกกันว่า ภาษาเครื่อง ( Machine Code ) ซึ่งผู้ใช้งาน ไม่สามารถอ่านได้เข้าใจ หรือ รู้เรื่องได้

     Batch File เป็น File ที่รวบรวมและเรียบเรียงชุดคำสั่ง ภายใน และ ภายนอก ที่สั่งให้คอมพิวเตอร์ ( ซึ่งเป็นแนวความคิดเดียวกันกับการเขียนโปรแกรมนั่นเอง ) ทำงานตามที่ต้องการ ซึ่งใช้รหัส ASCII ที่เป็นภาษาธรรมดาที่ผู้ใช้สามารถอ่านได้เข้าใจ โดยผู้ใช้สามารถเขียน Batch File เพื่อสร้างชุดคำสั่งที่ต้องการได้ตามประสงค์ เพียงแต่เรียนรู้หลักการเขียน และ คำสั่งที่สามารถใช้ได้ ใน Batch File โดย File ที่ถูกสร้างขึ้นมาจะมี นามสกุลของไฟล์ ( File Extension ) เป็น " .bat "
     โดยที่ Batch File นี้สามารถติดต่อกับ Batch File อื่น หรือ รับ-ส่ง ตัวแปร เข้าสู่ หรือ ออกจาก Batch File ได้ เช่นเดียวกันกับแนวคิดของการเขียนโปรแกรมทุกประการ เพียงแต่โปรแกรมที่เป็น Batch File นี้ ระบบคอมพิวเตอร์สามารถประมวลผลคำสั่งที่บรรจุอยู่ใน Batch File นี้ได้ทันทีโดยไม่ต้องมีการแปล ( Compile ) ไปเป็นภาษาเครื่องอีก เนื่องจากเป็นคำสั่งที่ ระบบปฎิบัติการ รู้จักอยู่แล้ว
     จริงๆผมว่ารายละเอียดมันเขียนหนังสือได้เป็นเล่มเลยครับ ทั้งรายละเอียดทั้งเทคนิค จะอธิบายตามความเข้าใจแล้วกันนะครับ

คำสั่งที่ใช้ใน batch ได้แบ่งเป็น 2 ประเภท คือ คำสั่งภายนอกกับคำสั่งภายใน
คำสั่งภายนอก : คือพวกไฟล์ที่สามารถเรียกให้ทำงานได้ครับ เช่นไฟล์ที่มีนามสกุล เช่น .com, .exe (ใน windows ปัจจุบันจะมีเพิ่มเติมอีกเยอะครับ เท่าที่ผมนึกออกก็พวก .msc, .msi)
คำสั่งภายใน : คำสั่งพวกนี้จะสามารถเรียกใช้งานได้ทันทีครับ จะไม่มีไฟล์ให้เรียก เช่นคำสั่ง copy, dir, cls, cd, del

การทำงานของ batch มันทำงานไล่ลงมาเรื่อยๆทีละคำสั่งครับ
ทดลอง batch file แบบง่ายๆนะครับ เปิด notepad ขึ้นมาแล้วพิมพ์ตามนี้เลย

@echo off
cls
echo Batch File Test
echo Open notepad
pause
notepad.exe

จากนั้นให้ทำการ Save As เป้นไฟล์ชิ่ออะไรก็ได้ครับ แต่นามสกุลต้องเป็น .bat ครับ แล้วทำการลองเรียกได้เลยครับ

อธิบายคำสั่งแต่ละบรรทัด
@echo off คำสั่งภายใน : ไม่ทำการแสดงการเรียกคำสั่ง
cls คำสั่งภายใน : ทำการ clear หน้าจอให้ว่าง
echo Batch File Test คำสั่งภายใน : ทำการแสดงข้อความ Batch File Test ออกทางหน้าจอ
echo Open notepad คำสั่งภายใน : ทำการแสดงข้อความ Open notepad ออกทางหน้าจอ
pause คำสั่งภายใน : หยุดรอรับคำสั่งจาก keyboard โดยจะขึ้นข้อความ Press any key to continue . . .
notepad.exe คำสั่งภายนอก : เรียกโปรแกรม notepad.exe ของ windows
cls คำสั่งภายใน : ทำการ clear หน้าจอให้ว่าง
echo Thank You คำสั่งภายใน : ทำการแสดงข้อความ Thank You ออกทางหน้าจอ
pause คำสั่งภายใน : หยุดรอรับคำสั่งจาก keyboard โดยจะขึ้นข้อความ Press any key to continue . . .
     batch แบบที่ดู advance หน่อยจะสามารถรับ parameter ประกาศตัวแปร ตรวจสอบเงื่อนไข หรือเปลี่ยนทิศทางข้อมูลได้ มันจะค่อนข้างออกไปทางโปรแกรมมิ่งครับ ยังไงหากจะศึกษาเรื่องนี้เพิ่มเติมยังได้อีกเยอะครับ เพราะรายละเอียดเยอะมากๆเอาแค่คร่าวๆพอละกัน เมื่อไรที่เราทำความเข้าใจกับสิ่งนั้นๆได้ เมื่อนั้นทุกอย่างก็จะเป็นแค่ขนมหวานนั่นเอง แล้วพบกันใหม่บทความหน้าครับ