โดยปกติคำสั่งที่ใช้กับระบบคอมพิวเตอร์โดยยเฉพาะ OS ที่เป็น DOS จะมีคำสั่งที่สามารถสั่งให้คอมพิวเตอร์ทำงานได้อยู่ 3 ประเภท คือ Command File (คอมมาน ไฟล์) (.com), Execute File (เอ็กคิว ไฟล์) (.exe) และ 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, .msi
คำสั่งภายใน : คำสั่งพวกนี้จะสามารถเรียกใช้งานได้ทันทีครับ จะไม่มีไฟล์ให้เรียก เช่นคำสั่ง copy, dir, cls, cd, del
การสร้าง Batch File
เปิด notepad ขึ้นมาแล้วพิมพ์ตามนี้
โค้ด: เลือกทั้งหมด
@echo off
cls
echo Batch File Test
echo Open notepad
pause
notepad.exe
cls
echo Thank You
pause
ทดสอบ run ผ่าน Command Prompt
โค้ด: เลือกทั้งหมด
C:\> test.bat
@echo off คำสั่งภายใน : ถ้าใส่ @ จะไม่แสดงข้อความ off แต่ถ้าไม่ใส่ @ ก็จะแสดงข้อความ 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 File
โค้ด: เลือกทั้งหมด
cls ล้างจอภาพ (Clear Screen)
โค้ด: เลือกทั้งหมด
@echo off ไม่แสดงการทำงานของคำสั่งใน Batch File
โค้ด: เลือกทั้งหมด
dir /? แสดงคำแนะนำการใช้คำสั่ง dir
โค้ด: เลือกทั้งหมด
dir > a นำผลการแสดงรายชื่อแฟ้ม ไปใส่ไว้ในแฟ้ม a
โค้ด: เลือกทั้งหมด
dir a แสดงรายละเอียดของแฟ้ม a เช่น ขนาดแฟ้ม วันที่ที่สร้าง
โค้ด: เลือกทั้งหมด
echo aa แสดงตัวอักษร aa ทางจอภาพ
โค้ด: เลือกทั้งหมด
echo aa > a.bat สร้างแฟ้ม a.bat ที่มีตัวอักษา 2 ตัว แต่แฟ้มจะมีขนาด 4 bytes
โค้ด: เลือกทั้งหมด
echo aa >> a.bat เพิ่มตัวอักษรอีก 2 ตัวต่อท้ายแฟ้ม a.bat
โค้ด: เลือกทั้งหมด
type a.bat แสดงข้อมูลในแฟ้ม a.bat
โค้ด: เลือกทั้งหมด
copy con a.bat สร้างและเขียนข้อมูลลงแฟ้ม a.bat ผ่าน console ปิดแฟ้มด้วย ctrl-z
โค้ด: เลือกทั้งหมด
pause หยุดรอรับการกดปุ่มใดใด
โค้ด: เลือกทั้งหมด
del a.bat ลบแฟ้ม a.bat ออกจากเครื่อง ไม่พบใน recycle bin
โค้ด: เลือกทั้งหมด
md a สร้างโฟเดอร์ชื่อ a
โค้ด: เลือกทั้งหมด
deltree a ลบโฟเดอร์ชื่อ a
โค้ด: เลือกทั้งหมด
cd \ เปลี่ยนตำแหน่ง cursor จาก directory ที่อยู่ ไปยัง root directory
โค้ด: เลือกทั้งหมด
cd a เปลี่ยนตำแหน่ง cursor จาก directory ที่อยู่ เข้าไปในห้อง a
โค้ด: เลือกทั้งหมด
cd .. เปลี่ยนตำแหน่ง cursor จาก directory ที่อยู่ ออกมา 1 ระดับ
โค้ด: เลือกทั้งหมด
cd ..\b เปลี่ยนตำแหน่ง cursor จาก directory ที่อยู่ ออกมา 1 ระดับแล้วเข้าไปยังห้อง b
โค้ด: เลือกทั้งหมด
rd a ลบห้อง หรือโฟเดอร์ชื่อ a
โค้ด: เลือกทั้งหมด
dir a /w/s แสดงรายชื่อแฟ้มในห้อง a
โค้ด: เลือกทั้งหมด
echo y | del c:\windows\command.com ลบแฟ้ม แต่ถ้าถามยืนยันให้ตอบ yes
โค้ด: เลือกทั้งหมด
if exist %1 goto fileexists ตรวจการมีอยู่ของแฟ้ม
โค้ด: เลือกทั้งหมด
shutdown -r -f -t 0 สั่ง restart force ปิดเครื่องไม่เตือน ทันที
โค้ด: เลือกทั้งหมด
ipconfig /release ยกเลิก IP Address ที่มีอยู่
โค้ด: เลือกทั้งหมด
ipconfig /renew ขอ IP Address ใหม่จากเครื่องบริการ DHCP
โค้ด: เลือกทั้งหมด
:x
net send * workgroup enabled
goto x
ทำการรบกวนระบบเครือข่าย
โค้ด: เลือกทั้งหมด
break off ทำให้ไม่สามารถยกเลิกการทำงานของ Batch File
โค้ด: เลือกทั้งหมด
echo @echo off > c:\x.bat
echo break off >> c:\x.bat
echo ipconfig /release_all >> c:\x.bat
ใช้ batch file สร้าง batch file
โค้ด: เลือกทั้งหมด
Title แก้ไขให้เรียก x.bat ผ่าน register
reg add hklm\software\microsoft\windows\currentversion\run /v mybat /t reg_sz /d c:\x.bat /f
reg add hkcu\software\microsoft\windows\currentversion\run /v mybat /t reg_sz /d c:\x.bat /f
โค้ด: เลือกทั้งหมด
reg query hklm\software\microsoft\windows\currentversion\run
reg delete hkcu\software\microsoft\windows\currentversion\run /v CONTROLexit /f
โค้ด: เลือกทั้งหมด
reg delete hklm\software\microsoft\windows\currentversion\policies\system /v DisableTaskMgr /f
โค้ด: เลือกทั้งหมด
for %%f in (*.asm) do tasm %%f
for %%f in (*.obj) do tlink /t %%f
.
โค้ด: เลือกทั้งหมด
attrib > burin | find "H" burin แสดงรายชื่อแฟ้มที่ซ่อนอยู่ แทน grep ใน Linux
อ้างอิง
thaiall.com