/ / วิธีการเขียน Batch Script บน Windows

วิธีการเขียนสคริปต์ชุดบน Windows

คุณรู้วิธีใช้ Command Prompt หรือไม่? ถ้าคุณทำคุณสามารถเขียนไฟล์แบตช์ ในรูปแบบที่ง่ายที่สุดไฟล์แบตช์ (หรือสคริปต์ชุดงาน) คือรายการของคำสั่งต่างๆที่ดำเนินการเมื่อคุณดับเบิลคลิกที่ไฟล์ ไฟล์แบตช์กลับไปที่ DOS แต่ยังคงใช้งานได้กับ Windows รุ่นใหม่

สคริปต์ PowerShell และสคริปต์ Bash อาจมีประสิทธิภาพมากกว่า แต่ไฟล์แบตช์ยังคงมีประโยชน์มากมายหากคุณต้องการเรียกใช้คำสั่งพื้นฐานของ Windows

ข้อมูลเบื้องต้นเกี่ยวกับไฟล์แบทช์

ไฟล์แบตช์เป็นเพียงไฟล์ข้อความที่บันทึกด้วยนามสกุลไฟล์นามสกุล. bat คุณสามารถเขียนได้โดยใช้ Notepad หรือโปรแกรมแก้ไขข้อความขั้นสูงเช่น Notepad ++ แต่อย่าใช้โปรแกรมประมวลผลคำเช่น Microsoft Word

มาสร้างไฟล์แบตช์ง่ายๆ ขั้นแรกให้เปิด Notepad พิมพ์บรรทัดต่อไปนี้:

ECHO OFF
ECHO Hello World
PAUSE

จากนั้นบันทึกไฟล์โดยคลิกไฟล์> บันทึก ตั้งชื่อตามที่คุณต้องการ แต่แทนที่นามสกุลไฟล์. txt เริ่มต้นด้วยนามสกุล. bat

ตัวอย่างเช่นคุณอาจต้องการตั้งชื่อ hello_world.bat .

ตอนนี้คุณมีไฟล์แบตช์ที่มีไฟล์.ไฟล์นามสกุล. bat ดับเบิลคลิกเพื่อเรียกใช้ ไฟล์แบตช์เฉพาะนี้ตั้งค่า ECHO ปิด (ซึ่งจะล้างเอาต์พุตโดยซ่อนคำสั่งไม่ให้พิมพ์ที่พรอมต์พิมพ์ข้อความ“ Hello World” ไปที่หน้าจอจากนั้นรอให้คุณกดปุ่มก่อนที่จะสิ้นสุด

หากคุณไม่ได้เพิ่ม PAUSE ไปที่ไฟล์ไฟล์แบตช์จะเรียกใช้ไฟล์คำสั่งแล้วปิดโดยอัตโนมัติ ในกรณีนี้ระบบจะพิมพ์คำว่า“ Hello World” ไปที่หน้าต่างจากนั้นปิดหน้าต่างพร้อมรับคำสั่งทันที เมื่อคุณต้องการเรียกใช้คำสั่งอย่างรวดเร็วโดยไม่เห็นผลลัพธ์คุณสามารถละเว้นสิ่งนี้ได้ หากคุณใช้คำสั่งหลายคำสั่งคุณสามารถวางไฟล์ PAUSE สั่งการระหว่างพวกเขา

การเขียนไฟล์แบทช์ที่ซับซ้อนมากขึ้น

โดยพื้นฐานแล้วการสร้างไฟล์แบตช์นั้นง่ายมาก สิ่งเดียวที่คุณต้องเปลี่ยนคือสิ่งที่คุณพิมพ์ลงใน Notepad หากต้องการเรียกใช้คำสั่งหลายคำสั่งให้พิมพ์คำสั่งแต่ละคำในบรรทัดของตัวเองจากนั้นไฟล์แบตช์จะเรียกใช้คำสั่งแต่ละคำสั่ง

ตัวอย่างเช่นสมมติว่าเราต้องการเขียนไฟล์แบตช์ที่เรียกใช้คำสั่งวินิจฉัยเครือข่ายหลายคำสั่ง เราอาจจะอยากวิ่ง ipconfig /all เพื่อดูข้อมูลเครือข่าย ping google.com เพื่อดูว่าเซิร์ฟเวอร์ของ Google ตอบสนองหรือไม่และ tracert google.com เพื่อเรียกใช้ traceroute ไปยัง google.com และดูว่ามีปัญหาระหว่างทางหรือไม่

ในรูปแบบพื้นฐานที่สุดเราสามารถวางคำสั่งทั้งหมดในไฟล์แบตช์ทีละคำสั่งได้ดังนี้:

ipconfig /all
ping google.com
tracert google.com
PAUSE

เมื่อเราเรียกใช้ไฟล์นี้เราจะเห็นผลลัพธ์ของแต่ละคำสั่งทันที แต่นี่ไม่ใช่วิธีที่ดีที่สุดในการเขียนไฟล์แบตช์

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

คุณอาจต้องการเพิ่มคำสั่ง“ ECHO OFF”ไปที่จุดเริ่มต้นของไฟล์ โดยทั่วไปจะเพิ่มในส่วนเริ่มต้นของไฟล์แบตช์ส่วนใหญ่ เมื่อคุณทำเช่นนี้คำสั่งนั้นจะไม่ถูกพิมพ์ลงใน Command Prompt แต่ผลลัพธ์จะเป็นเช่นนั้น ตัวอย่างเช่นคุณจะเห็นรายละเอียดการเชื่อมต่อเครือข่าย แต่จะไม่เห็นบรรทัด“ ipconfig / all” คนส่วนใหญ่ไม่สนใจที่จะเห็นคำสั่งดังนั้นจึงสามารถล้างผลลัพธ์ได้

นี่คือสิ่งที่อาจมีลักษณะดังนี้:

:: This batch file checks for network connection problems.
ECHO OFF
:: View network connection details
ipconfig /all
:: Check if Google.com is reachable
ping google.com
:: Run a traceroute to check the route to Google.com
tracert google.com
PAUSE

มีคำแนะนำอื่น ๆ ที่คุณสามารถทำได้ด้วยไฟล์ไฟล์แบตช์แบบนี้ ตัวอย่างเช่นคุณอาจต้องการให้สคริปต์แบตช์ของคุณรันคำสั่งข้างต้นจากนั้นถ่ายโอนผลลัพธ์ไปยังไฟล์ข้อความที่คุณสามารถดูได้ในภายหลัง ในการทำเช่นนั้นคุณต้องใช้ >> ตัวดำเนินการหลังจากแต่ละคำสั่งเพื่อผนวกเอาต์พุตเข้ากับไฟล์ข้อความ ในขณะที่เรากำลังจะอ่านผลลัพธ์จากไฟล์ข้อความเราสามารถละเว้นไฟล์ PAUSE คำสั่ง

:: This batch file checks for network connection problems
:: and saves the output to a .txt file.
ECHO OFF
:: View network connection details
ipconfig /all >>  results.txt
:: Check if Google.com is reachable
ping google.com >> results.txt
:: Run a traceroute to check the route to Google.com
tracert google.com >> results.txt

หลังจากเรียกใช้สคริปต์ข้างต้นคุณจะพบไฟล์ชื่อ results.txt ในโฟลเดอร์เดียวกับไฟล์แบตช์พร้อมเอาต์พุตของคำสั่ง หน้าต่างพรอมต์คำสั่งจะปิดโดยอัตโนมัติเมื่อไฟล์แบตช์ทำงานเสร็จ

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

โดยพื้นฐานแล้วนั่นคือประเด็นของแบทช์ส่วนใหญ่ไฟล์ - เพียงแค่เรียกใช้คำสั่งสองสามคำสั่งทีละคำสั่ง อย่างไรก็ตามไฟล์แบตช์อาจซับซ้อนกว่านี้อย่างมาก ตัวอย่างเช่นคุณสามารถใช้คำสั่ง“ IF” ร่วมกับคำสั่ง“ GOTO” เพื่อตรวจสอบค่าของบางสิ่งจากนั้นข้ามไปยังบรรทัดต่างๆโดยขึ้นอยู่กับผลลัพธ์ นี่เหมือนกับการเขียนโปรแกรมขนาดเล็กจริง ๆ มากกว่าสคริปต์ที่รวดเร็วและสกปรก นั่นเป็นเหตุผลหนึ่งที่บางครั้งไฟล์. bat จึงถูกเรียกว่า "โปรแกรมแบตช์" หากคุณต้องการทำสิ่งที่ซับซ้อนมากขึ้นคุณจะพบคำแนะนำมากมายเกี่ยวกับการทำสิ่งที่เฉพาะเจาะจงด้วยการเขียนโปรแกรมแบบเป็นกลุ่มทางออนไลน์ แต่ตอนนี้คุณรู้พื้นฐานของวิธีการง่ายๆเข้าด้วยกันแล้ว