วันจันทร์ที่ 5 กรกฎาคม พ.ศ. 2553

เจาะลึก DOS Batch File (แบบที่คุณไม่เคยรู้)

เจาะลึก DOS Batch File (แบบที่คุณไม่เคยรู้)

Batch File คืออะไร...มันคือชุดคำสั่งที่รวบรวมคำสั่งบน Command Line (หรือ
คำสั่งบน หน้าต่าง Cmd ของ วิน XP) ซึ่งในอดีต...DOS สร้างขึ้นมาเพื่อเป็นเมนู
ลัดบนระบบปฏิบัติการรุ่นโบราณที่ทำงานอยู่บน "คอนโซล(แป้นพิมพ์และจอภาพ)"
เช่นการ CD \DOS คือการเข้าไปยัง Directory DOS เพื่อด้วยคำสั่งเพียงอักษร
เดียวหรือคำสั่งที่คุณเองจำมันได้....ตัวของ Batch File เองสามารถทำงานอะไร
ได้บ้าง...โอย...มันทำงานได้มากจนคุณเองคาดไม่ถึงเลย...ตั้งแต่การล็อกระบบ
,
ตรวจสอบข้อมูล Error หรือ, เขียนไวรัส...(อันสุดท้ายนี้ไม่ค่อยชอบนะ) และ
ผู้อ่านที่บางคนไม่เคยแตะ...DOS มาก่อนจะศึกษาได้หรือเปล่า...ได้ครับ...แต่
คงไม่ใช้กับผมนะ...เพราะผมเขียน Blog นี้ขึ้นมาสำหรับ...มือเทพ...มือมาร..ครับ
พื้นฐานต้องหาอ่านกันหน่อย...เพราะผมคงไม่มานั้งเขียน blog ทุกวันเพื่อบอกว่า
DIR
ทำอะไร...CD \ คืออะไร...โอย...ถ้าเป็นอย่างนั้น...คงทำให้คนที่สนใจอ่าน
(
ส่วนน้อย...แต่เป็นเป้าหมายของผม) เบื่อครับ...เพราะบางคนมีพื้นฐานอยู่แล้ว...
มานั้งเรียนกันใหม่ "เหมือนจบป.ตรี...และไปเรียนประถมอีกครั้ง...คงไม่มีใครทำ
กัน"
เอาล่ะ...ปูพื้นกันใหม่ด้วย DOSx
อะไรคือดอสเอ็กซ์ ... มันเป็นระบบ DOS ที่ทำงานบนวิน 32 ครับ...คือมันจะขยาย
การทำงานของ Environment Memory ที่คุณใช้กำหนดตัวแปรด้วยคำสั่ง SET
และมันก็ทำงานร่วมกับชื่อแฟ้มข้อมูลที่มีขนาดยาวๆ ได้สบาย รวมถึงบรรจุคำสั่ง
ภายใน (Internal Command) เอาไว้ในระบบวินโดวส์ ครับ...เป็นผลให้ตำรา DOS
ที่คุณเคยเปิดอ่าน...เก็บมันใส่ลังได้เลยเพราะคำสั่งใหม่ๆ เพิ่มเข้ามาเพียบ...
ผมเองก็นำมาสอนได้ไม่ทุกคำสั่งครับ...แต่มีรายชื่อคำสั่งภายใน(Internal Com-
mand)
ให้คุณดูเล่นๆ ดังนี้
ASSOC, AT, ATTRIB, BREAK, CACLS, CALL, CD, CHCP, CHDIR, CHKDSK,
CHKNTFS, CLS, CMD, COLOR, COMP, COMPACT, CONVERT, COPY, DATE,
DEL, DIR, DISKCOMP, DISKCOPY, DOSKEY, ECHO, ENDLOCAL, ERASE,
EXIT, FC, FIND, FINDSTR, FOR, FORMAT, FTYPE, GOTO, GRAFTABL,
HELP, IF, LABEL, MD, MKDIR, MODE, MORE, MOVE, PATH, PAUSE, POPD,
PRINT, PROMPT, PUSHD, RD, RECOVER, REM, REN, RENAME, REPLACE,
RMDIR, SET, SETLOCAL, SHIFT, SORT, START, SUBST, TIME, TITLE,
TREE, TYPE, VER, VERIFY, VOL, XCOPY
นี้คือคำสั่งที่สามารถทำงานได้ทุกเวลาที่ วินโดวส์ทำงานครับ...ไม่ถูกลบทิ้งแม้จะ
หาทางกำจัดด้วยการลบ .EXE (External Command) ที่พบในเครื่อง เช่น EDIT
เราพิมพ์คำสั่งนี้ได้...ทุกครั้งที่ DOS แต่วันใดวันหนึ่งถูกมือดีลบ EDIT.EXE ทิ้ง
คำสั่ง EDIT ก็จะใช้งานไม่ได้ในทันทีเช่นเดียวกับ REGEDIT ซึ่งไวรัสเองสามารถ
ลบแฟ้มนั้นทิ้ง...แค่นี้ก็เข้าไปแก้ไข Regedit ไม่ได้...ไม่ต้องไปตั้งค่าอะไรในนั้น
ให้ยุ่งยาก....(อุย...เผลอบอกท่าไม้ตาย) ดังนั้นถ้าคุณเป็นเซียน DOS ต้องหา
ทางเลือกด้วยการพิมพ์ REG.EXE ซึ่งเป็นอีกคำสั่งที่จะฆ่าไวรัสที่ DOS ได้...
แต่...(พออ่านถึงตรงนี้...ไวรัสก็ลบ REG.EXE ทิ้งอีก) โอย...ถ้ามันลบทิ้งอีกก็
ก็อปแฟ้มนั้นเอาไว้...ใช้งานครับ...มีทางเดียว...หรือเปลี่ยนชื่อแฟ้ม REG.EXE
ด้วยคำสั่ง LEN REG.EXE KillBug.EXE แค่นี้...โปรแกรมที่ตั้งอยู่ในไวรัสก็ไม่
สามารถทำความเข้าใจได้ว่าคำสั่ง REG ถูกซ่อนไว้อีกชื่อ....
เกริ่นพอและ...
คำสั่งบน DOS นั้น ประกอบด้วย...
[
คำสั้งDOS]วรรค[/พารามิเตอร์]วรรค[ที่อยู่แฟ้มข้อมูลหรือโฟลเดอร์]
หรือ
[
คำสั่งDOS]วรรค[+/- พารามิเตอร์]วรรค[ที่อยู่แฟ้มข้อมูลหรือโฟลเดอร์]
หรือ
[
คำสั่งDOS]วรรค[คำสั่งย่อย]วรรค[ที่อยู่แฟ้มข้อมูลหรือโฟลเดอร์]
หรือจะดูรูปแบบที่แน่นอนของคำสั่ง (เก่งภาษาอีกนิดนะจะเข้าใจ)
[
คำสั่งDOS] /?
หรือ
[
คำสั่งDOS]วรรค[คำสั่งย่อย] /?
ทีนี้ก็ไม่ต้องพึ่งตำราที่ปริ้นท์ออกมาแหละ...อ่านรูปแบบคำสั่งและตีความเอาตาม
เวิร์ป...ทู...เดา...
ทีนี้...เป็นส่วนสำคัญ...

DOS
จะมีอุปกรณ์เชื่อมต่อที่สำคัญอยู่ 5 แฮนเดิล...ซึ่งทำงานเสมอ..โดยไม่มี
โปรแกรมใดเข้าไปแตะต้อง...นอกจากยืมใช้งาน
1.
อุปกรณ์ "CON" ใช้อ้างถึงเมื่อต้องการติดต่อจอภาพกับคีย์บอร์ด
2.
อุปกรณ์ "AUX" ใช้อ้างถึงเมื่อต้องการติดต่อพอร์ตสื่อสารอนุกรม
3.
อุปกรณ์ "PRN" ใช้อ้างถึงเมื่อต้องการติดต่อเครื่องพิมพ์ (Default)
4.
อุปกรณ์ "LPT" ใช้อ้างถึงพอร์ตขนาน
5.
อุปกรณ์ "NUL" ใช้อ้างถึงเมื่อไม่ต้องการส่งข้อมูลไปที่ใดเลยผลทำให้การแสดง
ผลของคำสั่งไม่มีหรือหายไป...

และคำสั่งที่จะอ้างถึงอุปกรณ์เหล่านั้นเราเรียก "ท่อ Pipe" หรือคำสั่ง "ไปป์ปิ้ง"
มีอยู่ 5 คำสั่งคือ
1. | "
เชื่อมต่อ" คำสั่งนี้เป็นคำสั่งไปป์ตัวจริงใช้เชื่อมคำสั่ง DOS 2 คำสั่งให้ทำงาน
พร้อมกัน 2 คำสั่งอย่างมากเท่าที่ทำงานมา) แต่คำสั่งนี้ทำงานได้ตั้งแต่ DOS 5
เป็นต้นมาแต่มีข้อเสียคือถ้าจะใช้คำสั่งนี้...ห้ามใช้กับอุปกรณ์ ROM เช่น CD-ROM
กล่าวคือคำสั่งต้องอาศัย Temporary ในการทำงานจึงไม่สามารถทำงานกับ
อุปกรณ์ที่ป้องกันการเขียนได้
2. > "
ยิงออก" คำสั่งนี้เป็นคำสั่งส่งผลหน้าจอภาพไปยังอุปกรณ์ทั้ง 5
3. >> "
ยิงเพิ่ม" คำสั่งนี้เป็นคำสั่งส่งผลหน้าจอภาพเพิ่มเติมจาก "ยิงออก" ไปยัง
อุปกรณ์ทั้ง 5
4. < "
รับเข้า" คำสั่งนี้เป็นคำสั่งส่งผลจากคำสั่งด้านหลังเข้ามา
5. << "
รับเพิ่ม" คำสั่งนี้เป็นคำสั่งส่งผลจากคำสั่งด้านหลังมาเพิ่มจาก "รับเข้า"
6.
เอ๊ะ...มายังไง...ไหนว่ามี 5 อันนี้ผมเพิ่มเติมให้เนื่องจาก XP สามารถเขียนคำสั่ง
DOS
หลายคำสั่งในบรรทัดเดียวกันได้...(บางคนไม่รู้) และคำสั่งที่ใช้ในการเชื่อม
ต่อคำสั่งเหล่านั้นคือ
(
คำสั่งDOS) & (คำสั่งDOS) & (คำสั่งDOS) "อ่านว่าในวงเล็บคำสั่งดอสและ...."

ตัวอย่างคำสั่งที่น่าสนใจคือ
COPY CON A.BAT (
หมายถึง "คัดลอกอุปกรณ์ Con ในชื่อ A.BAT")
พิมพ์คำสั่งลงไป...เพราะนี้คือแป้นรับคำสั่งแบบ Notepad แต่มันกลับไปแก้ไข
บรรทัดบนไม่ได้...จบการทำงานด้วย Ctrl+Z

จากนั้นพิมพ์ A.BAT ด้วยคำสั่ง
TYPE A.BAT >PRN (
หมายถึง "พิมพ์ข้อความ A.BAT ไปที่ เครื่องพิมพ์")

อะ...Blog นี้แค่นี้ก่อน...เฮอ...เหนือย..

ไม่มีความคิดเห็น:

แสดงความคิดเห็น