วิธีสร้างไฟล์ Batch บน Windows 10 สั่งงานหลายขั้นตอนด้วยการคลิกครั้งเดียว
ไฟล์ Batch คือไฟล์ข้อความที่รวบรวมคำสั่ง Command Prompt หลายบรรทัดไว้ด้วยกัน เมื่อเปิดไฟล์ Windows จะ执行คำสั่งตามลำดับ ช่วยลดงานซ้ำ เช่น เปิดโปรแกรมหลายตัว สร้างโฟลเดอร์ คัดลอกไฟล์ ตรวจสอบเครือข่าย หรือสำรองข้อมูลเบื้องต้น
ไฟล์ Batch ใช้นามสกุล .bat หรือ .cmd สร้างได้ด้วย Notepad โดยไม่ต้องติดตั้งโปรแกรมเพิ่ม แต่ควรอ่านทุกคำสั่งก่อนเปิดไฟล์ที่ได้รับจากผู้อื่น เพราะ Batch สามารถแก้ไข ย้าย หรือลบข้อมูลได้ตามสิทธิ์ของผู้ใช้
คำเตือน: อย่าเปิดไฟล์
.batจากแหล่งที่ไม่รู้จัก และอย่าเลือก Run as administrator หากยังไม่ได้ตรวจสอบทุกบรรทัด
สารบัญ
- ไฟล์ Batch คืออะไร
- Batch File ใช้ทำอะไรได้บ้าง
-
.batและ.cmdต่างกันอย่างไร - วิธีสร้าง Batch File แรก
-
คำสั่ง
@echo offคืออะไร -
วิธีแสดงข้อความด้วย
echo -
วิธีหยุดหน้าต่างด้วย
pause - วิธีใส่หมายเหตุ
- วิธีเปิดโปรแกรม
- วิธีเปิดเว็บไซต์
- วิธีสร้างโฟลเดอร์
- วิธีคัดลอกไฟล์
- วิธีสำรองข้อมูล
- วิธีใช้ตัวแปร
- Environment Variables
- วิธีรับข้อมูลจากผู้ใช้
-
วิธีใช้คำสั่ง
if - วิธีตรวจสอบไฟล์และโฟลเดอร์
-
วิธีใช้
forLoop -
วิธีใช้ Label และ
goto - วิธีสร้างเมนู
- วิธีใช้ Argument
- วิธีเปลี่ยนโฟลเดอร์ทำงาน
- วิธีเรียก Batch อีกไฟล์
- วิธีใช้ Exit Code
- วิธีสร้าง Log
- วิธีรันแบบ Administrator
- วิธีตั้งเวลาเปิด Batch
- วิธีแก้ภาษาไทยแสดงผิด
- ข้อผิดพลาดที่พบบ่อย
- วิธีใช้งานอย่างปลอดภัย
- คำถามที่พบบ่อย
- สรุป
1. ไฟล์ Batch คืออะไร
Batch File คือไฟล์ Script สำหรับ Windows Command Prompt ภายในประกอบด้วยคำสั่งหนึ่งบรรทัดหรือหลายบรรทัด ซึ่งจะทำงานจากบนลงล่างตามลำดับ
ตัวอย่างไฟล์ Batch แบบง่าย:
@echo off echo Hello Windows 10 pause
เมื่อเปิดไฟล์ จะเกิดขั้นตอนดังนี้
-
ซ่อนการแสดงคำสั่งด้วย
@echo off -
แสดงข้อความ
Hello Windows 10 -
หยุดรอให้ผู้ใช้กดปุ่มด้วย
pause
ไฟล์ Batch เหมาะกับงานอัตโนมัติที่ใช้คำสั่ง CMD แต่ไม่ได้มีความสามารถและโครงสร้างทันสมัยเท่าภาษา Script อย่าง PowerShell
2. Batch File ใช้ทำอะไรได้บ้าง
ไฟล์ Batch สามารถช่วยงานบน Windows 10 ได้หลายรูปแบบ เช่น
- เปิดโปรแกรมหลายตัวพร้อมกัน
- เปิดเว็บไซต์ที่ใช้ทำงานประจำ
- สร้างโครงสร้างโฟลเดอร์
- คัดลอกไฟล์ไปยังโฟลเดอร์สำรอง
- เรียกใช้ Robocopy
- แสดงข้อมูลระบบ
- ตรวจสอบการเชื่อมต่อเครือข่าย
- เรียกโปรแกรมพร้อม Parameter
- บันทึกผลคำสั่งลงไฟล์ Log
- เปลี่ยนชื่อไฟล์ตามรูปแบบ
- ตรวจสอบว่ามีไฟล์อยู่หรือไม่
- สร้างเมนูคำสั่ง
- เรียก Batch File อื่น
- ส่ง Argument ให้โปรแกรม
- ตั้งให้ทำงานผ่าน Task Scheduler
Batch File เหมาะกับงานที่มีขั้นตอนคงที่และทำซ้ำบ่อย หากเป็นงานซับซ้อน มีข้อมูลหลายรูปแบบ หรือต้องจัดการ Error อย่างละเอียด PowerShell อาจเหมาะกว่า
3. Batch File ทำงานอย่างไร
เมื่อดับเบิลคลิกไฟล์ .bat หรือ .cmd Windows จะเรียก Command Processor เพื่ออ่านคำสั่งภายในไฟล์
คำสั่งจะทำงานตามลำดับดังนี้
บรรทัดแรก ↓ บรรทัดถัดไป ↓ ตรวจสอบเงื่อนไข ↓ เรียกโปรแกรมหรือคำสั่ง ↓ จบการทำงาน
หากคำสั่งหนึ่งผิดพลาด Batch อาจยังทำบรรทัดถัดไปต่อ ขึ้นอยู่กับวิธีเขียน Script ดังนั้นงานสำคัญควรตรวจสอบ Exit Code และเขียนเงื่อนไขรองรับความผิดพลาด
4. ไฟล์ .bat และ .cmd ต่างกันอย่างไร
ทั้งสองนามสกุลใช้เรียกคำสั่งผ่าน Command Prompt และทำงานคล้ายกันมากบน Windows รุ่นปัจจุบัน
| นามสกุล | ลักษณะ |
|---|---|
.bat | ใช้มานานและเป็นที่รู้จักทั่วไป |
.cmd | ออกแบบสำหรับระบบตระกูล Windows NT |
.txt | เป็นไฟล์ข้อความธรรมดา ไม่ทำงานเป็น Batch |
สำหรับงานทั่วไปบน Windows 10 สามารถเลือก .bat ได้ เพราะผู้ใช้ส่วนใหญ่เข้าใจได้ทันทีว่าเป็น Batch File
5. วิธีแสดงนามสกุลไฟล์ใน Windows 10
ก่อนสร้าง Batch File ควรเปิดการแสดงนามสกุล เพื่อป้องกันไฟล์ถูกบันทึกเป็น .bat.txt
- เปิด File Explorer
- เลือกแท็บ View
- เปิดเครื่องหมายถูกหน้า File name extensions
-
ตรวจสอบว่าชื่อไฟล์แสดง
.txt,.batและนามสกุลอื่น
ขั้นตอนนี้ช่วยให้เห็นประเภทไฟล์จริง ลดโอกาสเปิดไฟล์ Executable ที่ใช้ไอคอนหรือชื่อเลียนแบบเอกสาร
6. วิธีสร้าง Batch File แรกบน Windows 10
- เปิด Notepad
- พิมพ์คำสั่งต่อไปนี้
@echo off echo My first batch file pause
- คลิก File
- เลือก Save As
- ตั้งชื่อไฟล์ว่า
first-batch.bat
- เปลี่ยน Save as type เป็น All Files
- เลือก Encoding ที่เหมาะสม
- คลิก Save
- ดับเบิลคลิกไฟล์เพื่อทดลอง
ควรเก็บไฟล์ทดลองไว้ในโฟลเดอร์เฉพาะ เช่น
C:\BatchScripts
หรือโฟลเดอร์ Documents ของผู้ใช้ แทนการวางกระจัดกระจายบน Desktop
7. @echo off คืออะไร
ตามค่าเริ่มต้น Command Prompt จะแสดงคำสั่งแต่ละบรรทัดก่อนแสดงผลลัพธ์ ทำให้หน้าจออ่านยาก
คำสั่ง
echo off
ใช้ปิดการแสดงคำสั่ง ส่วนเครื่องหมาย @ ที่อยู่ด้านหน้าใช้ซ่อนบรรทัดนั้นด้วย
จึงนิยมเขียนบรรทัดแรกว่า
@echo off
คำสั่งนี้ไม่ปิดข้อความที่สร้างด้วย echo และไม่ซ่อน Error ที่โปรแกรมอื่นแสดง
8. วิธีแสดงข้อความด้วย echo
ใช้ echo เพื่อแสดงข้อความบนหน้าจอ เช่น
@echo off echo Starting backup... echo Please wait. pause
หากต้องการเว้นบรรทัด สามารถใช้
echo.
ตัวอย่าง:
@echo off echo Backup started. echo. echo Do not close this window. pause
ข้อความช่วยบอกผู้ใช้ว่า Script กำลังทำขั้นตอนใด และควรทำอะไรต่อ
9. วิธีตั้งชื่อหน้าต่าง Command Prompt
ใช้คำสั่ง title เพื่อเปลี่ยนชื่อหน้าต่าง เช่น
@echo off title Daily Backup echo Preparing backup... pause
ชื่อหน้าต่างช่วยแยก Batch หลายตัวที่เปิดพร้อมกัน และทำให้ผู้ใช้ทราบว่างานใดกำลังทำงานอยู่
10. วิธีเปลี่ยนสีหน้าต่าง
คำสั่ง color ใช้เปลี่ยนสีพื้นหลังและตัวอักษร เช่น
@echo off color 0A echo System check pause
ตัวเลขตัวแรกแทนสีพื้นหลัง ส่วนตัวที่สองแทนสีตัวอักษร
ไม่ควรใช้สีเดียวกันทั้งสองตำแหน่ง เพราะข้อความอาจมองไม่เห็น และไม่ควรใช้สีจำนวนมากจนอ่านยาก
11. คำสั่ง pause คืออะไร
เมื่อดับเบิลคลิก Batch File หน้าต่างอาจปิดทันทีหลังคำสั่งทำงานเสร็จ ทำให้ไม่ทันอ่านผลลัพธ์
เพิ่มคำสั่งนี้ไว้ท้ายไฟล์:
pause
ระบบจะแสดงข้อความให้กดปุ่มเพื่อดำเนินการต่อ
หากไม่ต้องการแสดงข้อความมาตรฐาน สามารถใช้รูปแบบนี้:
pause >nul
แล้วสร้างข้อความของตัวเอง เช่น
echo Press any key to close. pause >nul
12. วิธีใส่หมายเหตุใน Batch File
หมายเหตุช่วยอธิบายว่าแต่ละส่วนทำอะไร โดยไม่ถูกนำไป执行เป็นคำสั่ง
ใช้ rem เช่น
@echo off rem This section creates a backup folder mkdir "%USERPROFILE%\Documents\Backup" pause
อีกวิธีที่พบได้คือใช้ ::
:: Open work applications
เพื่อความชัดเจนและเข้ากันได้กับโครงสร้างต่างๆ การใช้ rem เป็นตัวเลือกที่ตรงความหมายกว่า โดยเฉพาะภายใน Block คำสั่ง
13. วิธีเปิดโปรแกรมด้วย Batch File
ใช้คำสั่ง start ตามด้วย Path ของโปรแกรม
@echo off start "" notepad.exe start "" calc.exe exit
เครื่องหมายคำพูดคู่ชุดแรกหลัง start เป็นชื่อหน้าต่างที่เว้นว่างไว้ โดยมีความสำคัญเมื่อ Path ของโปรแกรมอยู่ในเครื่องหมายคำพูด
ตัวอย่างเปิดโปรแกรมจาก Path ที่มีช่องว่าง:
start "" "C:\Program Files\Example\App.exe"
หากเขียนเพียงเครื่องหมายคำพูดชุดเดียว start อาจตีความ Path เป็นชื่อหน้าต่างแทน
14. วิธีเปิดหลายโปรแกรมพร้อมกัน
ตัวอย่าง Batch สำหรับเปิดเครื่องมือทำงาน:
@echo off title Open Work Apps start "" notepad.exe start "" calc.exe start "" explorer.exe "%USERPROFILE%\Documents" exit
คำสั่ง start จะเปิดโปรแกรมแล้วให้ Batch ทำบรรทัดถัดไปต่อ โดยไม่ต้องรอให้โปรแกรมแรกปิด
หากโปรแกรมไม่ได้อยู่ใน PATH ต้องระบุ Path เต็มของไฟล์ Executable
15. วิธีรอให้โปรแกรมปิดก่อนทำขั้นตอนถัดไป
ใช้ตัวเลือก /wait กับ start
@echo off echo Open Notepad and close it to continue. start "" /wait notepad.exe echo Notepad has been closed. pause
Batch จะหยุดรอจนกว่า Notepad จะปิด แล้วจึงทำคำสั่งบรรทัดถัดไป
วิธีนี้เหมาะกับงานที่ขั้นตอนถัดไปต้องรอผลจากโปรแกรมก่อน
16. วิธีเปิดเว็บไซต์ด้วย Batch File
สามารถใช้ start เปิด URL ผ่าน Browser เริ่มต้นได้
@echo off start "" "https://example.com" exit
หากต้องการเปิดหลายหน้า:
@echo off start "" "https://example.com/page1" start "" "https://example.com/page2" exit
ควรตรวจสอบ URL ให้ถูกต้อง และอย่าใส่ Token, รหัสผ่าน หรือข้อมูลลับไว้ในไฟล์ Batch เพราะผู้ที่เปิดไฟล์ด้วย Text Editor สามารถอ่านได้
17. วิธีเปิดโฟลเดอร์ด้วย Batch File
ใช้ start หรือ explorer เช่น
@echo off start "" "%USERPROFILE%\Documents" exit
หรือ
explorer "%USERPROFILE%\Downloads"
Environment Variable %USERPROFILE% ช่วยให้ Script ทำงานกับโฟลเดอร์ของผู้ใช้ปัจจุบัน โดยไม่ต้องเขียนชื่อบัญชีลงไปโดยตรง
18. วิธีสร้างโฟลเดอร์ด้วย mkdir
คำสั่ง mkdir หรือ md ใช้สร้างโฟลเดอร์
@echo off mkdir "%USERPROFILE%\Documents\ProjectBackup" echo Folder created. pause
หากโฟลเดอร์มีอยู่แล้ว ระบบอาจแจ้งข้อความ แต่ข้อมูลเดิมจะไม่ถูกลบ
ควรใส่ Path ไว้ในเครื่องหมายคำพูดเสมอเมื่ออาจมีช่องว่าง เช่น
mkdir "%USERPROFILE%\Documents\My Project"
19. วิธีสร้างหลายโฟลเดอร์พร้อมกัน
ตัวอย่างสร้างโครงสร้างโปรเจกต์:
@echo off set "ROOT=%USERPROFILE%\Documents\NewProject" mkdir "%ROOT%" mkdir "%ROOT%\Documents" mkdir "%ROOT%\Images" mkdir "%ROOT%\Exports" mkdir "%ROOT%\Backup" echo Project folders created at: echo %ROOT% pause
รูปแบบ
set "ROOT=value"
ช่วยป้องกันช่องว่างที่ไม่ตั้งใจติดท้ายค่าตัวแปร
20. วิธีคัดลอกไฟล์ด้วย copy
ใช้ copy สำหรับคัดลอกไฟล์ทั่วไป เช่น
@echo off copy "%USERPROFILE%\Documents\notes.txt" "%USERPROFILE%\Documents\Backup\notes.txt" pause
หากโฟลเดอร์ปลายทางยังไม่มี ต้องสร้างก่อน:
@echo off set "DEST=%USERPROFILE%\Documents\Backup" if not exist "%DEST%" mkdir "%DEST%" copy "%USERPROFILE%\Documents\notes.txt" "%DEST%\notes.txt" pause
copy เหมาะกับไฟล์จำนวนน้อย หากต้องคัดลอกหลายโฟลเดอร์และต้องการความทนทาน ควรใช้ Robocopy
21. วิธีคัดลอกโฟลเดอร์ด้วย Robocopy
ตัวอย่างสำรองโฟลเดอร์ Documents ไปยังไดรฟ์สำรอง:
@echo off title Documents Backup set "SOURCE=%USERPROFILE%\Documents" set "DEST=E:\Backup\Documents" if not exist "E:\" ( echo Backup drive E: was not found. pause exit /b 1 ) robocopy "%SOURCE%" "%DEST%" /E /R:2 /W:3 echo. echo Backup command finished. pause
ความหมายของตัวเลือก:
-
/Eคัดลอกโฟลเดอร์ย่อย รวมโฟลเดอร์ว่าง -
/R:2ลองใหม่ไม่เกินสองครั้งเมื่อเกิดข้อผิดพลาด -
/W:3รอสามวินาทีก่อนลองใหม่
ควรตรวจสอบว่าไดรฟ์ E: เป็นไดรฟ์สำรองจริง เพราะอักษรไดรฟ์อาจเปลี่ยนได้
22. ทำไมต้องระวังตัวเลือก /MIR
ตัวเลือก /MIR ของ Robocopy ทำให้ปลายทางสะท้อนโครงสร้างต้นทาง รวมถึงนำไฟล์หรือโฟลเดอร์ที่ไม่มีในต้นทางออกจากปลายทาง
จึงไม่ควรเพิ่ม /MIR ใน Batch สำรองข้อมูลโดยไม่เข้าใจผลกระทบ เพราะ
- เลือก Source และ Destination สลับกันอาจกระทบข้อมูล
- ไฟล์ที่ลบจากต้นทางอาจหายจากปลายทาง
- Path ผิดอาจส่งผลต่อโฟลเดอร์ที่ไม่เกี่ยวข้อง
- ไม่เหมาะกับการเก็บประวัติไฟล์หลายเวอร์ชัน
สำหรับมือใหม่ ควรเริ่มจาก /E และตรวจสอบ Log ก่อนใช้ตัวเลือกที่ลบข้อมูลปลายทาง
23. ตัวแปรใน Batch File คืออะไร
ตัวแปรใช้เก็บข้อความ Path ตัวเลข หรือข้อมูลที่ต้องเรียกซ้ำ
ตัวอย่าง:
@echo off set "PROJECT=MyProject" set "BACKUP=%USERPROFILE%\Documents\Backup" echo Project: %PROJECT% echo Backup path: %BACKUP% pause
การเรียกค่าตัวแปรใช้เครื่องหมาย % ล้อมชื่อ เช่น
%PROJECT%
ไม่ควรเก็บรหัสผ่าน API Key หรือข้อมูลลับไว้ใน Batch เพราะไฟล์เป็นข้อความธรรมดาและอ่านได้ง่าย
24. Environment Variables ที่ใช้บ่อย
Windows มีตัวแปรระบบที่สามารถนำมาใช้ใน Batch ได้ทันที
| ตัวแปร | ความหมาย |
|---|---|
%USERNAME% | ชื่อบัญชีผู้ใช้ |
%USERPROFILE% | โฟลเดอร์โปรไฟล์ผู้ใช้ |
%COMPUTERNAME% | ชื่อคอมพิวเตอร์ |
%TEMP% | โฟลเดอร์ไฟล์ชั่วคราว |
%WINDIR% | โฟลเดอร์ Windows |
%SYSTEMROOT% | ตำแหน่งระบบ Windows |
%PROGRAMFILES% | โฟลเดอร์ Program Files |
%APPDATA% | โฟลเดอร์ Roaming AppData |
%LOCALAPPDATA% | โฟลเดอร์ Local AppData |
%DATE% | วันที่ตามรูปแบบของระบบ |
%TIME% | เวลาปัจจุบัน |
%PATH% | รายการตำแหน่งค้นหาโปรแกรม |
%CD% | โฟลเดอร์ทำงานปัจจุบัน |
%RANDOM% | ตัวเลขสุ่มในช่วงที่ระบบกำหนด |
ค่าของ %DATE% และ %TIME% ขึ้นอยู่กับภาษาและรูปแบบวันที่ของ Windows จึงควรระวังเมื่อนำไปสร้างชื่อไฟล์
25. วิธีรับข้อมูลจากผู้ใช้ด้วย set /p
ตัวอย่างถามชื่อโปรเจกต์:
@echo off set /p "PROJECT=Enter project name: " echo You entered: %PROJECT% pause
ข้อมูลที่ผู้ใช้กรอกจะถูกเก็บไว้ในตัวแปร %PROJECT%
หากนำข้อมูลไปใช้เป็นชื่อไฟล์หรือคำสั่ง ต้องตรวจสอบอักขระที่ไม่อนุญาตและความถูกต้องก่อน เพราะอักขระพิเศษบางตัวมีความหมายใน Command Prompt
26. วิธีใช้ choice สร้างคำถาม Yes หรือ No
คำสั่ง choice เหมาะกับคำถามที่กำหนดตัวเลือกชัดเจน
@echo off choice /C YN /M "Open Notepad?" if errorlevel 2 goto no if errorlevel 1 goto yes :yes start "" notepad.exe goto end :no echo Cancelled. :end pause
errorlevel ของ choice ควรตรวจจากค่ามากไปหาค่าน้อย เพื่อป้องกันเงื่อนไขซ้อนทับกัน
27. วิธีใช้คำสั่ง if
คำสั่ง if ใช้ตัดสินใจตามเงื่อนไข
ตัวอย่างตรวจข้อความ:
@echo off set "MODE=backup" if "%MODE%"=="backup" ( echo Backup mode selected. ) else ( echo Another mode selected. ) pause
ควรใส่ค่าตัวแปรไว้ในเครื่องหมายคำพูด เพื่อให้คำสั่งยังมีรูปแบบที่ถูกต้องแม้ตัวแปรไม่มีค่า
28. วิธีตรวจสอบว่าไฟล์มีอยู่หรือไม่
ใช้ if exist
@echo off set "FILE=%USERPROFILE%\Documents\notes.txt" if exist "%FILE%" ( echo File found: echo %FILE% ) else ( echo File not found. ) pause
วิธีนี้ช่วยป้องกัน Batch พยายามคัดลอกหรือเปิดไฟล์ที่ไม่มีอยู่
29. วิธีตรวจสอบว่าโฟลเดอร์มีอยู่หรือไม่
ตัวอย่าง:
@echo off set "FOLDER=%USERPROFILE%\Documents\Backup" if not exist "%FOLDER%" ( mkdir "%FOLDER%" echo Backup folder created. ) else ( echo Backup folder already exists. ) pause
ควรตรวจสอบ Error หลัง mkdir หาก Path อยู่บนไดรฟ์ที่ไม่มีสิทธิ์หรือพื้นที่ไม่เพียงพอ
30. วิธีใช้ for Loop
for ใช้ทำคำสั่งซ้ำกับไฟล์หรือรายการหลายค่า
ตัวอย่างแสดงชื่อไฟล์ข้อความในโฟลเดอร์ปัจจุบัน:
@echo off for %%F in (*.txt) do ( echo Found: %%F ) pause
ใน Batch File ต้องใช้ %%F แต่หากพิมพ์ตรงใน Command Prompt จะใช้ %F
ควรทดลอง for ด้วยคำสั่งที่อ่านข้อมูล เช่น echo ก่อนนำไปใช้กับการย้าย เปลี่ยนชื่อ หรือลบไฟล์จำนวนมาก
31. วิธีวนอ่านไฟล์ในโฟลเดอร์ย่อย
ตัวอย่างแสดง Path ของไฟล์ .log ทั้งหมด:
@echo off for /R "%USERPROFILE%\Documents" %%F in (*.log) do ( echo %%F ) pause
คำสั่งนี้แสดงข้อมูลอย่างเดียว ไม่แก้ไขไฟล์
หากโฟลเดอร์มีไฟล์จำนวนมาก ผลลัพธ์อาจยาว ควรส่งผลไปยังไฟล์รายงานแทนการแสดงทั้งหมดบนหน้าจอ
32. Label และ goto คืออะไร
Label ใช้กำหนดจุดใน Script โดยเขียนเครื่องหมาย : หน้าชื่อ ส่วน goto ใช้กระโดดไปยัง Label
@echo off echo Starting script... goto finish echo This line will be skipped. :finish echo Script finished. pause
ไม่ควรใช้ goto จำนวนมากจนโครงสร้าง Script อ่านยาก หากงานเริ่มซับซ้อน ควรแบ่งเป็น Subroutine หรือเปลี่ยนไปใช้ PowerShell
33. วิธีสร้างเมนูใน Batch File
ตัวอย่างเมนูเปิดโปรแกรม:
@echo off title Tool Menu :menu cls echo 1. Open Notepad echo 2. Open Calculator echo 3. Open Documents echo 4. Exit echo. choice /C 1234 /M "Select an option" if errorlevel 4 goto end if errorlevel 3 goto documents if errorlevel 2 goto calculator if errorlevel 1 goto notepad :notepad start "" notepad.exe goto menu :calculator start "" calc.exe goto menu :documents start "" "%USERPROFILE%\Documents" goto menu :end exit /b 0
การตรวจ errorlevel เรียงจากค่ามากไปหาน้อยเป็นส่วนสำคัญของตัวอย่างนี้
34. วิธีใช้ Argument ใน Batch File
Argument คือค่าที่ส่งตามหลังชื่อไฟล์ Batch
ตัวอย่างเรียกไฟล์:
greet.bat Somchai
ภายใน Batch สามารถอ่านค่าด้วย %1
@echo off echo Hello, %1 pause
ตัวแปร Argument ที่ใช้บ่อย ได้แก่
| ตัวแปร | ความหมาย |
|---|---|
%0 | ชื่อ Batch File |
%1 | Argument ตัวแรก |
%2 | Argument ตัวที่สอง |
%* | Argument ทั้งหมด |
%~1 | Argument ตัวแรกโดยนำเครื่องหมายคำพูดรอบนอกออก |
%~dp0 | Drive และ Path ของ Batch File |
หาก Argument มีช่องว่าง ควรใส่เครื่องหมายคำพูดตอนเรียกไฟล์
35. %~dp0 คืออะไร
%~dp0 แทนตำแหน่งโฟลเดอร์ที่เก็บ Batch File ช่วยให้ Script อ้างถึงไฟล์ที่อยู่ข้างกันได้ แม้เปิด Batch จากโฟลเดอร์อื่น
ตัวอย่าง:
@echo off echo Batch folder: echo %~dp0 pause
ตัวอย่างเปิดไฟล์ข้อความที่อยู่โฟลเดอร์เดียวกัน:
@echo off start "" "%~dp0readme.txt" exit
เนื่องจาก Path อาจมีช่องว่าง จึงควรใส่เครื่องหมายคำพูดเมื่อใช้งาน
36. วิธีเปลี่ยนโฟลเดอร์ทำงาน
ใช้ cd เพื่อเปลี่ยน Current Directory
cd /d "D:\Projects\My Project"
ตัวเลือก /d ช่วยเปลี่ยนทั้ง Drive และ Directory ในคำสั่งเดียว
หากต้องการให้โฟลเดอร์ทำงานเป็นตำแหน่งเดียวกับ Batch File:
cd /d "%~dp0"
หรือใช้ pushd:
pushd "%~dp0"
เมื่อทำงานเสร็จสามารถกลับไปตำแหน่งเดิมด้วย
popd
37. วิธีเรียก Batch File อีกไฟล์
ใช้คำสั่ง call
@echo off echo Running first script... call "%~dp0second-script.bat" echo Returned to first script. pause
หากเรียก Batch File อื่นโดยไม่ใช้ call การควบคุมอาจไม่กลับมาทำบรรทัดถัดไปตามที่คาดในบริบทของ Batch
38. วิธีสร้าง Subroutine
สามารถใช้ Label ร่วมกับ call เพื่อแบ่งงานเป็นส่วนย่อย
@echo off call :show_header call :show_computer goto end :show_header echo ========================= echo System Information echo ========================= exit /b :show_computer echo Computer: %COMPUTERNAME% echo User: %USERNAME% exit /b :end pause
exit /b ภายใน Subroutine จะกลับไปยังบรรทัดถัดจาก call โดยไม่ปิดหน้าต่างทั้งหมด
39. Error Level คืออะไร
โปรแกรมและคำสั่งจำนวนมากส่งรหัสผลลัพธ์กลับมาเมื่อทำงานเสร็จ เรียกว่า Exit Code หรือ Error Level
โดยทั่วไป:
-
0มักหมายถึงสำเร็จ -
ค่าที่ไม่ใช่
0มักหมายถึงมีสถานะอื่นหรือข้อผิดพลาด
ตัวอย่าง:
@echo off ping -n 1 127.0.0.1 >nul if errorlevel 1 ( echo Command reported a problem. ) else ( echo Command completed successfully. ) pause
ความหมายของ Exit Code ขึ้นอยู่กับแต่ละโปรแกรม ต้องอ่านเอกสารของคำสั่งนั้น ไม่ควรสรุปว่าค่าที่ไม่ใช่ศูนย์เป็นความล้มเหลวแบบเดียวกันทั้งหมด
40. ตัวดำเนินการ && และ ||
ใช้ && เพื่อทำคำสั่งถัดไปเมื่อคำสั่งแรกสำเร็จ และใช้ || เมื่อคำสั่งแรกไม่สำเร็จ
ตัวอย่างสร้างโฟลเดอร์:
mkdir "%USERPROFILE%\Documents\TestFolder" && echo Folder is ready.
ตัวอย่างแสดงข้อความเมื่อเปิดไฟล์ไม่สำเร็จ:
start "" "%USERPROFILE%\Documents\missing.txt" || echo Unable to open the file.
การตรวจผลของ start อาจสะท้อนเฉพาะการเรียกคำสั่ง ไม่ได้ยืนยันว่าโปรแกรมทำงานทุกขั้นตอนสำเร็จ จึงควรเลือกวิธีตรวจสอบให้เหมาะกับแต่ละงาน
41. วิธีบันทึกผลคำสั่งลงไฟล์
เครื่องหมาย > ใช้เขียนผลลัพธ์ใหม่ลงไฟล์:
ipconfig > "%USERPROFILE%\Desktop\network-report.txt"
เครื่องหมาย >> ใช้เพิ่มข้อมูลต่อท้ายไฟล์เดิม:
echo Check completed. >> "%USERPROFILE%\Desktop\network-report.txt"
หากใช้ > กับไฟล์ที่มีอยู่ เนื้อหาเดิมจะถูกแทนที่ จึงต้องระวัง Path เป้าหมาย
42. วิธีบันทึกทั้งผลลัพธ์และ Error
ใช้รูปแบบต่อไปนี้:
command > "report.txt" 2>&1
ตัวอย่าง:
@echo off ipconfig /all > "%USERPROFILE%\Desktop\system-network-log.txt" 2>&1 echo Report created. pause
-
1หมายถึง Standard Output -
2หมายถึง Standard Error -
2>&1ส่ง Error ไปยังปลายทางเดียวกับผลลัพธ์ปกติ
ก่อนแชร์ Log ควรตรวจสอบว่าไม่มี IP, ชื่อเครื่อง, Domain หรือข้อมูลภายในที่ไม่ควรเปิดเผย
43. วิธีสร้าง Log พร้อมวันที่และเวลา
รูปแบบ %DATE% และ %TIME% แตกต่างตามภาษาของ Windows จึงอาจมีอักขระที่ใช้ในชื่อไฟล์ไม่ได้ เช่น / หรือ :
วิธีที่ปลอดภัยสำหรับมือใหม่คือใช้ชื่อ Log คงที่แล้วเพิ่มวันเวลาภายในไฟล์:
@echo off set "LOG=%USERPROFILE%\Documents\batch-log.txt" echo ------------------------- >> "%LOG%" echo Started: %DATE% %TIME% >> "%LOG%" echo Computer: %COMPUTERNAME% >> "%LOG%" echo User: %USERNAME% >> "%LOG%" echo Completed: %DATE% %TIME% >> "%LOG%" echo Log saved to: echo %LOG% pause
วิธีนี้ไม่เสี่ยงกับอักขระต้องห้ามในชื่อไฟล์
44. วิธีตรวจสอบการเชื่อมต่ออินเทอร์เน็ต
สามารถใช้ ping ตรวจสอบว่าติดต่อปลายทางได้หรือไม่
@echo off echo Checking network connection... ping -n 2 1.1.1.1 echo. echo Test completed. pause
การ Ping ไม่สำเร็จไม่ได้แปลว่าอินเทอร์เน็ตเสียเสมอไป เพราะปลายทางหรือ Firewall อาจไม่ตอบ ICMP
หากต้องตรวจสอบ DNS สามารถใช้ชื่อ Domain ที่เชื่อถือได้และไม่ใส่ข้อมูลส่วนตัวลงในคำสั่ง
45. วิธีแสดงข้อมูลคอมพิวเตอร์
ตัวอย่าง Batch เก็บข้อมูลพื้นฐาน:
@echo off title Computer Information echo Computer: %COMPUTERNAME% echo User: %USERNAME% echo Windows folder: %WINDIR% echo Current folder: %CD% echo. systeminfo pause
คำสั่ง systeminfo อาจใช้เวลาสักครู่และแสดงรายละเอียดจำนวนมาก ควรส่งออกเป็นไฟล์หากต้องนำไปวิเคราะห์
46. วิธีล้างหน้าจอด้วย cls
ใช้คำสั่ง
cls
เพื่อล้างข้อความเก่าออกจากหน้าต่าง Command Prompt
ตัวอย่าง:
@echo off echo Loading... timeout /t 2 >nul cls echo Ready. pause
cls ล้างเฉพาะหน้าจอ ไม่ได้ลบไฟล์หรือประวัติที่ถูกบันทึกไว้ใน Log
47. วิธีหน่วงเวลาด้วย timeout
ใช้ timeout เพื่อรอตามจำนวนวินาที
timeout /t 5
หากไม่ต้องการให้ผู้ใช้กดปุ่มข้ามเวลา:
timeout /t 5 /nobreak
หากไม่ต้องการแสดงข้อความ:
timeout /t 5 /nobreak >nul
ไม่ควรใช้การหน่วงเวลาแทนการตรวจสอบว่าโปรแกรมทำงานเสร็จหรือยัง เพราะเครื่องแต่ละเครื่องใช้เวลาไม่เท่ากัน
48. วิธีรัน Batch แบบ Administrator
คลิกขวาที่ไฟล์แล้วเลือก Run as administrator
ควรใช้เฉพาะเมื่อคำสั่งต้องแก้ส่วนระดับระบบ เช่น Service, Windows Feature หรือโฟลเดอร์ที่ต้องใช้สิทธิ์สูง
ก่อนอนุญาตสิทธิ์ Administrator ให้ตรวจสอบ
- ทุกบรรทัดในไฟล์
- โปรแกรมที่ถูกเรียก
- Path ต้นทางและปลายทาง
- คำสั่งดาวน์โหลดหรือ Script ภายนอก
- คำสั่งลบ ย้าย หรือเขียนทับ
- Registry และ Service ที่เกี่ยวข้อง
- ไฟล์ Batch มาจากแหล่งใด
การเพิ่มสิทธิ์ไม่ได้ทำให้ Script ดีขึ้น แต่ทำให้คำสั่งมีขอบเขตเปลี่ยนแปลงระบบมากขึ้น
49. วิธีตรวจสอบว่า Batch เปิดแบบ Administrator หรือไม่
ตัวอย่างตรวจสอบสิทธิ์โดยใช้คำสั่งที่ต้องเข้าถึงข้อมูลระดับระบบ:
@echo off net session >nul 2>&1 if %errorlevel%==0 ( echo Administrator access detected. ) else ( echo Please run this file as administrator. ) pause
Script นี้แค่ตรวจสอบและแจ้งข้อความ ไม่ได้ยกระดับสิทธิ์เอง
สำหรับงานทั่วไป ควรออกแบบ Script ให้ทำงานด้วยสิทธิ์ปกติได้ หากไม่จำเป็นต้องเข้าถึงส่วนระบบ
50. วิธีตั้งเวลาเปิด Batch ด้วย Task Scheduler
- เปิด Start
- ค้นหา Task Scheduler
- เลือก Create Basic Task
- ตั้งชื่องาน
- เลือก Trigger เช่น Daily หรือ At log on
- เลือก Start a program
- เลือกไฟล์ Batch
- กำหนด Start in หากจำเป็น
- ตรวจสอบเวลาและเงื่อนไข
- บันทึก Task
- คลิกขวาแล้วเลือก Run เพื่อทดสอบ
หาก Batch อ้างถึง Network Drive ด้วยอักษรไดรฟ์ Task อาจมองไม่เห็นไดรฟ์นั้นในบางบริบท ควรใช้ UNC Path ตามสิทธิ์ที่ได้รับ เช่น
\\server\share
51. วิธีแก้ภาษาไทยใน Batch แสดงผิด
ปัญหาภาษาไทยอาจเกิดจาก Encoding ของไฟล์และ Code Page ของ Command Prompt ไม่ตรงกัน
แนวทางแก้ไข ได้แก่
- บันทึกไฟล์ด้วย Encoding ที่เหมาะสม
- ใช้ข้อความภาษาอังกฤษสำหรับ Script ที่ต้องใช้หลายเครื่อง
- ทดสอบบน Windows เป้าหมาย
- ตรวจสอบ Font ของหน้าต่าง Terminal
- พิจารณาใช้ Windows Terminal
- ใช้ PowerShell หากต้องจัดการ Unicode อย่างจริงจัง
คำสั่งเปลี่ยน Code Page อาจช่วยได้ในบางระบบ แต่โปรแกรมที่เรียกจาก Batch อาจรองรับ Encoding ต่างกัน จึงต้องทดสอบผลลัพธ์จริง
52. ทำไมดับเบิลคลิกแล้วหน้าต่างปิดทันที
สาเหตุคือ Script ทำงานเสร็จหรือเกิด Error แล้วไม่มีคำสั่งรอ
วิธีตรวจสอบ:
-
เพิ่ม
pauseไว้ท้ายไฟล์ - เปิด Command Prompt ก่อน
- เปลี่ยนไปยังโฟลเดอร์ของ Batch
- พิมพ์ชื่อไฟล์เพื่อเรียกทำงาน
- อ่าน Error ที่แสดง
- บันทึกผลลง Log
ตัวอย่าง:
@echo off echo Running script... rem Commands go here echo Script finished with exit code %errorlevel%. pause
53. ทำไมคำสั่งหาไฟล์ไม่พบ
สาเหตุที่พบบ่อย ได้แก่
- Current Directory ไม่ตรง
- Path มีช่องว่างแต่ไม่มีเครื่องหมายคำพูด
- สะกดชื่อไฟล์ผิด
- ไม่แสดงนามสกุลจริง
- โปรแกรมไม่ได้อยู่ใน PATH
- ใช้ Drive Letter ที่ไม่มีอยู่
- ไฟล์อยู่บน Network ที่ยังไม่เชื่อมต่อ
- Batch ถูกเปิดจาก Task Scheduler ซึ่งใช้โฟลเดอร์เริ่มต้นต่างกัน
วิธีแก้ที่เหมาะสมคือใช้ Path เต็ม หรืออ้างอิงจาก %~dp0
54. ทำไมตัวแปรในวงเล็บไม่เปลี่ยนค่า
Command Prompt อาจขยายค่าตัวแปรก่อนทำ Block ในวงเล็บ ทำให้ค่าที่แสดงไม่อัปเดตตามที่คาด
งานลักษณะนี้อาจต้องใช้ Delayed Expansion:
@echo off setlocal EnableDelayedExpansion set "COUNT=0" for %%F in (*.txt) do ( set /a COUNT+=1 echo File number !COUNT!: %%F ) endlocal pause
เมื่อเปิด Delayed Expansion จะเรียกตัวแปรภายใน Block ด้วย !VARIABLE! แทน %VARIABLE%
ควรระวังไฟล์หรือข้อความที่มีเครื่องหมาย ! เพราะอาจถูกตีความระหว่าง Delayed Expansion
55. setlocal และ endlocal คืออะไร
setlocal ทำให้การเปลี่ยนตัวแปร Environment ภายใน Batch เป็นขอบเขตชั่วคราว เมื่อถึง endlocal ค่าจะกลับไปเหมือนก่อนเรียก Script
@echo off setlocal set "TEMP_VALUE=Example" echo %TEMP_VALUE% endlocal pause
ควรใช้ setlocal ใกล้ต้นไฟล์ เพื่อป้องกันตัวแปรของ Batch ไปรบกวน Environment ของกระบวนการที่เรียกใช้งาน
56. คำสั่งอันตรายที่ต้องระวัง
คำสั่งต่อไปนี้สามารถเปลี่ยนแปลงหรือลบข้อมูลได้ หากใช้ Path ผิดอาจกระทบไฟล์จำนวนมาก
-
del -
erase -
rd -
rmdir -
move -
ren -
format -
diskpart -
reg delete -
sc delete -
takeown -
icacls -
shutdown - Robocopy ที่ใช้ตัวเลือก Mirror หรือ Purge
ก่อนใช้ควร
- ทดสอบกับโฟลเดอร์จำลอง
-
แสดง Path ด้วย
echo - ตรวจสอบว่าตัวแปรไม่ว่าง
- ขอคำยืนยันจากผู้ใช้
- สำรองข้อมูล
- บันทึก Log
- หลีกเลี่ยง Wildcard กว้างๆ
- ไม่เปิดด้วย Administrator หากไม่จำเป็น
บทความนี้ไม่แนะนำให้ทดลองคำสั่งลบหรือฟอร์แมตใน Batch File สำหรับการเริ่มต้น
57. วิธีอ่าน Batch File ก่อนเปิด
คลิกขวาที่ไฟล์แล้วเลือก Edit หรือเปิดด้วย Notepad จากนั้นตรวจสอบทุกบรรทัด
สัญญาณที่ควรระวัง ได้แก่
- คำสั่งลบไฟล์หรือโฟลเดอร์
- คำสั่งเรียก PowerShell ที่ยาวหรือเข้ารหัส
- ดาวน์โหลดไฟล์จากเว็บไซต์ไม่รู้จัก
- ปิด Microsoft Defender
- สร้างบัญชีผู้ใช้
- แก้ Registry
- สร้าง Scheduled Task
- เพิ่ม Service
- เชื่อมต่อ Server ที่ไม่รู้จัก
- คัดลอกไฟล์เข้าโฟลเดอร์ระบบ
- เรียกไฟล์ Executable ที่ซ่อนไว้
- ขอให้ Run as administrator โดยไม่อธิบายเหตุผล
หากไม่เข้าใจแม้แต่บรรทัดเดียว ควรหยุดและขอให้ผู้รู้ตรวจสอบก่อนเปิด
58. วิธีใช้งาน Batch File อย่างปลอดภัย
แนวทางสำคัญ ได้แก่
- สำรองไฟล์ก่อนทดสอบ
- ใช้โฟลเดอร์ทดลอง
- เริ่มจากคำสั่งที่อ่านข้อมูล
- ใส่เครื่องหมายคำพูดรอบ Path
- ตรวจสอบว่า Source และ Destination ถูกต้อง
-
ใช้
if existก่อนเข้าถึงไฟล์ -
ใช้
echoแสดงค่าตัวแปรก่อนทำงาน - เขียน Log
- ตรวจสอบ Exit Code
- หลีกเลี่ยงสิทธิ์ Administrator
- ไม่เก็บรหัสผ่านใน Script
- ไม่เปิด Batch จากแหล่งไม่รู้จัก
- ปรับเปลี่ยนครั้งละส่วน
- ใส่ Comment อธิบายคำสั่ง
คำแนะนำจาก comsiam คือให้ทดสอบ Batch กับไฟล์สำเนาก่อนเสมอ โดยเฉพาะ Script ที่คัดลอก ย้าย หรือเปลี่ยนชื่อไฟล์จำนวนมาก
59. Batch File เหมาะกับงานแบบใด
Batch File เหมาะกับ
- งาน CMD ที่มีขั้นตอนคงที่
- การเปิดโปรแกรมหลายตัว
- การเตรียมโฟลเดอร์
- การคัดลอกไฟล์ทั่วไป
- การเรียกเครื่องมือ Command Line
- การสร้างรายงานข้อความ
- งานดูแลระบบขนาดเล็ก
- เครื่องที่ไม่ต้องติดตั้งภาษา Script เพิ่ม
- การเรียกผ่าน Task Scheduler
งานที่ควรพิจารณา PowerShell หรือภาษาอื่น ได้แก่
- จัดการ JSON หรือ XML
- เรียก REST API
- ทำงานกับ Object ซับซ้อน
- จัดการ Error หลายระดับ
- สร้างหน้าต่างกราฟิก
- ประมวลผล Unicode จำนวนมาก
- จัดการข้อมูลตาราง
- สร้างระบบอัตโนมัติขนาดใหญ่
60. คำถามที่พบบ่อยเกี่ยวกับ Batch File
Batch File ต้องติดตั้งโปรแกรมเพิ่มหรือไม่
ไม่ต้อง สามารถสร้างด้วย Notepad และเรียกผ่าน Command Prompt ที่มีอยู่ใน Windows 10
ไฟล์ .bat เป็นไวรัสหรือไม่
นามสกุล .bat ไม่ได้หมายความว่าเป็นไวรัส แต่คำสั่งภายในสามารถทำสิ่งที่เป็นอันตรายได้ จึงต้องอ่านเนื้อหาก่อนเปิด
เปิด Batch File ด้วย Notepad อย่างไร
คลิกขวา เลือก Edit หรือ Open with แล้วเลือก Notepad อย่าดับเบิลคลิกหากต้องการอ่านโดยไม่ให้คำสั่งทำงาน
ทำไมบันทึกแล้วกลายเป็น .bat.txt
เพราะ Notepad บันทึกเป็น Text Document ให้เลือก Save as type เป็น All Files และเปิด File name extensions เพื่อตรวจสอบชื่อจริง
Batch File เปิดโปรแกรมหลายตัวได้หรือไม่
ได้ ใช้คำสั่ง start แยกแต่ละบรรทัด
Batch File ทำงานอัตโนมัติทุกวันได้หรือไม่
ได้ โดยสร้าง Task ใน Task Scheduler และกำหนดเวลาให้เรียก Batch File
จำเป็นต้อง Run as administrator หรือไม่
ไม่จำเป็นสำหรับงานทั่วไป ใช้เฉพาะคำสั่งที่ต้องเข้าถึงส่วนระบบ การใช้สิทธิ์ปกติช่วยจำกัดความเสียหายเมื่อ Script ผิดพลาด
สามารถซ่อนหน้าต่าง Batch ได้หรือไม่
Task Scheduler และวิธีเรียก Script บางรูปแบบช่วยลดการแสดงหน้าต่างได้ แต่ระหว่างพัฒนา ควรแสดงหน้าต่างและ Log เพื่อให้ตรวจสอบข้อผิดพลาดได้ง่าย
เก็บรหัสผ่านใน Batch File ได้หรือไม่
ไม่ควร เพราะเป็นไฟล์ข้อความธรรมดา ผู้ที่เข้าถึงไฟล์สามารถอ่านรหัสผ่านได้
ใช้ Batch สำรองข้อมูลได้หรือไม่
ใช้ได้ โดยควรใช้ Robocopy ตรวจสอบ Source และ Destination บันทึก Log และไม่ใช้ตัวเลือกที่ลบข้อมูลจนกว่าจะเข้าใจผลกระทบ
Batch File ย้อนกลับคำสั่งได้หรือไม่
ไม่มีระบบ Undo โดยอัตโนมัติ ผลขึ้นอยู่กับคำสั่งที่ใช้ จึงต้องสำรองข้อมูลและทดสอบก่อน
Batch กับ PowerShell เลือกอะไรดี
Batch เหมาะกับคำสั่ง CMD และงานง่าย ส่วน PowerShell เหมาะกับงานระบบที่ซับซ้อน การจัดการ Object และระบบอัตโนมัติสมัยใหม่
61. ตัวอย่าง Batch File เปิดชุดโปรแกรมทำงาน
@echo off setlocal title Open Work Tools echo Opening work tools... start "" notepad.exe start "" calc.exe start "" "%USERPROFILE%\Documents" echo Done. timeout /t 2 /nobreak >nul endlocal exit /b 0
ตัวอย่างนี้เปิดเฉพาะโปรแกรมมาตรฐานและโฟลเดอร์ Documents ไม่แก้ไขหรือลบข้อมูล
62. ตัวอย่าง Batch File สร้างโฟลเดอร์โปรเจกต์
@echo off setlocal title Create Project Folders set "ROOT=%USERPROFILE%\Documents\NewProject" if not exist "%ROOT%" mkdir "%ROOT%" if not exist "%ROOT%\Documents" mkdir "%ROOT%\Documents" if not exist "%ROOT%\Images" mkdir "%ROOT%\Images" if not exist "%ROOT%\Exports" mkdir "%ROOT%\Exports" if not exist "%ROOT%\Backup" mkdir "%ROOT%\Backup" echo. echo Project folders are ready: echo %ROOT% echo. pause endlocal
สามารถเปลี่ยน NewProject เป็นชื่อโฟลเดอร์ที่ต้องการ โดยหลีกเลี่ยงอักขระที่ Windows ไม่อนุญาตในชื่อไฟล์
63. ตัวอย่าง Batch File เก็บข้อมูลระบบลง Log
@echo off setlocal title System Report set "REPORT=%USERPROFILE%\Documents\system-report.txt" echo System Report > "%REPORT%" echo Generated: %DATE% %TIME% >> "%REPORT%" echo Computer: %COMPUTERNAME% >> "%REPORT%" echo User: %USERNAME% >> "%REPORT%" echo. >> "%REPORT%" systeminfo >> "%REPORT%" 2>&1 echo. >> "%REPORT%" ipconfig /all >> "%REPORT%" 2>&1 echo. echo Report saved to: echo %REPORT% echo. echo Review the file before sharing because it may contain system and network information. pause endlocal
รายงานอาจมีชื่อเครื่อง IP Address และข้อมูลระบบ จึงควรตรวจสอบก่อนเผยแพร่
64. สรุปวิธีสร้าง Batch File บน Windows 10
Batch File ช่วยรวมคำสั่ง Command Prompt หลายขั้นตอนไว้ในไฟล์เดียว ใช้เปิดโปรแกรม สร้างโฟลเดอร์ คัดลอกไฟล์ ตรวจสอบระบบ และเรียกงานอัตโนมัติผ่าน Task Scheduler ได้
การเริ่มต้นทำได้ด้วย Notepad บันทึกไฟล์เป็นนามสกุล .bat และใช้คำสั่งพื้นฐาน เช่น @echo off, echo, pause, start, set, if, for และ call
หัวใจสำคัญคือการตรวจสอบ Path ใส่เครื่องหมายคำพูด สำรองข้อมูล และทดสอบกับไฟล์จำลองก่อนนำไปใช้จริง ไม่ควรเก็บรหัสผ่านใน Batch หรือเปิด Script จากแหล่งที่ไม่รู้จัก สำหรับผู้เริ่มต้น comsiam แนะนำให้เริ่มจาก Batch ที่เปิดโปรแกรมหรือสร้างรายงานก่อน แล้วค่อยพัฒนาไปสู่งานคัดลอกและระบบอัตโนมัติที่ซับซ้อนขึ้น