วิธีสร้างไฟล์ Batch บน Windows 10 สั่งงานหลายขั้นตอนด้วยการคลิกครั้งเดียว

 ไฟล์ Batch คือไฟล์ข้อความที่รวบรวมคำสั่ง Command Prompt หลายบรรทัดไว้ด้วยกัน เมื่อเปิดไฟล์ Windows จะ执行คำสั่งตามลำดับ ช่วยลดงานซ้ำ เช่น เปิดโปรแกรมหลายตัว สร้างโฟลเดอร์ คัดลอกไฟล์ ตรวจสอบเครือข่าย หรือสำรองข้อมูลเบื้องต้น

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

คำเตือน: อย่าเปิดไฟล์ .bat จากแหล่งที่ไม่รู้จัก และอย่าเลือก Run as administrator หากยังไม่ได้ตรวจสอบทุกบรรทัด


สารบัญ

  1. ไฟล์ Batch คืออะไร
  2. Batch File ใช้ทำอะไรได้บ้าง
  3. .bat และ .cmd ต่างกันอย่างไร
  4. วิธีสร้าง Batch File แรก
  5. คำสั่ง @echo off คืออะไร
  6. วิธีแสดงข้อความด้วย echo
  7. วิธีหยุดหน้าต่างด้วย pause
  8. วิธีใส่หมายเหตุ
  9. วิธีเปิดโปรแกรม
  10. วิธีเปิดเว็บไซต์
  11. วิธีสร้างโฟลเดอร์
  12. วิธีคัดลอกไฟล์
  13. วิธีสำรองข้อมูล
  14. วิธีใช้ตัวแปร
  15. Environment Variables
  16. วิธีรับข้อมูลจากผู้ใช้
  17. วิธีใช้คำสั่ง if
  18. วิธีตรวจสอบไฟล์และโฟลเดอร์
  19. วิธีใช้ for Loop
  20. วิธีใช้ Label และ goto
  21. วิธีสร้างเมนู
  22. วิธีใช้ Argument
  23. วิธีเปลี่ยนโฟลเดอร์ทำงาน
  24. วิธีเรียก Batch อีกไฟล์
  25. วิธีใช้ Exit Code
  26. วิธีสร้าง Log
  27. วิธีรันแบบ Administrator
  28. วิธีตั้งเวลาเปิด Batch
  29. วิธีแก้ภาษาไทยแสดงผิด
  30. ข้อผิดพลาดที่พบบ่อย
  31. วิธีใช้งานอย่างปลอดภัย
  32. คำถามที่พบบ่อย
  33. สรุป

1. ไฟล์ Batch คืออะไร

Batch File คือไฟล์ Script สำหรับ Windows Command Prompt ภายในประกอบด้วยคำสั่งหนึ่งบรรทัดหรือหลายบรรทัด ซึ่งจะทำงานจากบนลงล่างตามลำดับ

ตัวอย่างไฟล์ Batch แบบง่าย:

@echo off
echo Hello Windows 10
pause

เมื่อเปิดไฟล์ จะเกิดขั้นตอนดังนี้

  1. ซ่อนการแสดงคำสั่งด้วย @echo off
  2. แสดงข้อความ Hello Windows 10
  3. หยุดรอให้ผู้ใช้กดปุ่มด้วย 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

  1. เปิด File Explorer
  2. เลือกแท็บ View
  3. เปิดเครื่องหมายถูกหน้า File name extensions
  4. ตรวจสอบว่าชื่อไฟล์แสดง .txt, .bat และนามสกุลอื่น

ขั้นตอนนี้ช่วยให้เห็นประเภทไฟล์จริง ลดโอกาสเปิดไฟล์ Executable ที่ใช้ไอคอนหรือชื่อเลียนแบบเอกสาร


6. วิธีสร้าง Batch File แรกบน Windows 10

  1. เปิด Notepad
  2. พิมพ์คำสั่งต่อไปนี้
@echo off
echo My first batch file
pause
  1. คลิก File
  2. เลือก Save As
  3. ตั้งชื่อไฟล์ว่า
first-batch.bat
  1. เปลี่ยน Save as type เป็น All Files
  2. เลือก Encoding ที่เหมาะสม
  3. คลิก Save
  4. ดับเบิลคลิกไฟล์เพื่อทดลอง

ควรเก็บไฟล์ทดลองไว้ในโฟลเดอร์เฉพาะ เช่น

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
%1Argument ตัวแรก
%2Argument ตัวที่สอง
%*Argument ทั้งหมด
%~1Argument ตัวแรกโดยนำเครื่องหมายคำพูดรอบนอกออก
%~dp0Drive และ 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

  1. เปิด Start
  2. ค้นหา Task Scheduler
  3. เลือก Create Basic Task
  4. ตั้งชื่องาน
  5. เลือก Trigger เช่น Daily หรือ At log on
  6. เลือก Start a program
  7. เลือกไฟล์ Batch
  8. กำหนด Start in หากจำเป็น
  9. ตรวจสอบเวลาและเงื่อนไข
  10. บันทึก Task
  11. คลิกขวาแล้วเลือก 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

ก่อนใช้ควร

  1. ทดสอบกับโฟลเดอร์จำลอง
  2. แสดง Path ด้วย echo
  3. ตรวจสอบว่าตัวแปรไม่ว่าง
  4. ขอคำยืนยันจากผู้ใช้
  5. สำรองข้อมูล
  6. บันทึก Log
  7. หลีกเลี่ยง Wildcard กว้างๆ
  8. ไม่เปิดด้วย 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 ที่เปิดโปรแกรมหรือสร้างรายงานก่อน แล้วค่อยพัฒนาไปสู่งานคัดลอกและระบบอัตโนมัติที่ซับซ้อนขึ้น

Popular posts from this blog

Windows 10 WiFi เปิดไม่ได้ – วิธีแก้ WiFi Not Turning On

Windows 10 ช้าหลัง Update – วิธีแก้ Slow After Update แบบช่าง IT มืออาชีพ

Activate Windows ไม่ได้ เกิดจากอะไร? วิธีแก้ปัญหา Windows ไม่แท้แบบถูกต้อง