thaiall logomy background คำสั่งดอส ในแบทช์ไฟล์
my town
เว็บมาสเตอร์

การประมวลผลแบบแบทช์ (Batch processing)

การประมวลผลแบบแบทช์ คือ วิธีการประมวลผลที่ทำการเก็บรวบรวมข้อมูลในแต่ละช่วงเวลาไว้ก่อน จนกว่าจะมีข้อมูลที่ประมวลผลจำนวนหนึ่ง จึงทำการประมวลผลพร้อมกัน เช่น เวลาเข้าออกของพนักงานอาจจะพิมพ์เก็บไว้ทุกสัปดาห์ แต่นำมาประมวลผลเดือนละครั้งเท่านั้น
Digital logic | OS | คำสั่งดอส | Batch | Debug | Assembly | GWBasic | Docker |
แบทช์ไฟล์ คืออะไร
Batch Processing ?
การประมวลผลแบบแบทช์ คือ วิธีการประมวลผลที่ทำการเก็บรวบรวมข้อมูลในแต่ละช่วงเวลาไว้ก่อน จนกว่าจะมีข้อมูลที่ประมวลผลจำนวนหนึ่ง จึงทำการประมวลผลพร้อมกัน เช่น เวลาเข้าออกของพนักงานอาจจะพิมพ์เก็บไว้ทุกสัปดาห์ แต่นำมาประมวลผลเดือนละครั้งเท่านั้น
BAT file หรือ BATCH file คือ แฟ้มแบบหนึ่งใน DOS หรือ OS/2 ที่สามารถประมวลผลได้ โดยการระบุคำสั่งที่ต้องการให้ดำเนินการเข้าไป และชื่อสกุลของแฟ้มนี้คือ .bat สามารถสร้างขึ้นด้วย Text Editor ซึ่งไมโครซอฟท์วินโดว์ให้การสนับสนุนแบทซ์ไฟล์
+ computerhope.com/batch.htm
+ uva.ulb.ac.be/cit_courseware
ตัวอย่าง download
ตัวอย่างการตรวจสอบ File exists
@echo  off
rem   check  to  see  if  a  file  exists
if  exist  %1  goto  fileexists
goto  nofile
:fileexists
echo  the  file  %1  exists
rem  other  commands  here .....
goto  end
:nofile
echo  the  file  %1  does  not  exist
goto  end
:end

ตัวอย่างการใช้ caret symbol
DOS> echo ^<a href=a.htm^>a^</a^> > a.htm
DOS> explorer a.htm
ฝึกเขียนคำสั่งที่จะใช้ใน Batch File
1 clsล้างจอภาพ (Clear Screen)
2 @echo offไม่แสดงการทำงานของคำสั่งใน Batch File
3 dir /?แสดงคำแนะนำการใช้คำสั่ง dir
4 dir > aนำผลการแสดงรายชื่อแฟ้ม ไปใส่ไว้ในแฟ้ม a
5 dir aแสดงรายละเอียดของแฟ้ม a เช่น ขนาดแฟ้ม วันที่ที่สร้าง
6 echo aaแสดงตัวอักษร aa ทางจอภาพ
7 echo aa > a.batสร้างแฟ้ม a.bat ที่มีตัวอักษา 2 ตัว แต่แฟ้มจะมีขนาด 4 bytes
8 echo aa >> a.batเพิ่มตัวอักษรอีก 2 ตัวต่อท้ายแฟ้ม a.bat
9 type a.batแสดงข้อมูลในแฟ้ม a.bat
10 copy con a.batสร้างและเขียนข้อมูลลงแฟ้ม a.bat ผ่าน console ปิดแฟ้มด้วย ctrl-z
11 pauseหยุดรอรับการกดปุ่มใดใด
12 del a.batลบแฟ้ม a.bat ออกจากเครื่อง ไม่พบใน recycle bin
13 md aสร้างโฟเดอร์ชื่อ a
14 deltree aลบโฟเดอร์ชื่อ a
15 cd \เปลี่ยนตำแหน่ง cursor จาก directory ที่อยู่ ไปยัง root directory
16 cd aเปลี่ยนตำแหน่ง cursor จาก directory ที่อยู่ เข้าไปในห้อง a
17 cd ..เปลี่ยนตำแหน่ง cursor จาก directory ที่อยู่ ออกมา 1 ระดับ
18 cd ..\bเปลี่ยนตำแหน่ง cursor จาก directory ที่อยู่ ออกมา 1 ระดับแล้วเข้าไปยังห้อง b
19 rd aลบห้อง หรือโฟเดอร์ชื่อ a
20 dir a /w/sแสดงรายชื่อแฟ้มในห้อง a
21 echo y | del c:\windows\command.comลบแฟ้ม แต่ถ้าถามยืนยันให้ตอบ yes
22 if exist %1 goto fileexistsตรวจการมีอยู่ของแฟ้ม
23 shutdown -r -f -t 0สั่ง restart force ปิดเครื่องไม่เตือน ทันที แต่ shutdown /a จะยกเลิก
24 ipconfig /releaseยกเลิก IP Address ที่มีอยู่
25 ipconfig /renewขอ IP Address ใหม่จากเครื่องบริการ DHCP
26 :x
net send * workgroup enabled
goto x
ทำการรบกวนระบบเครือข่าย
27 break offทำให้ไม่สามารถยกเลิกการทำงานของ Batch File
28 echo @echo off > c:\x.bat
echo break off >> c:\x.bat
echo ipconfig /release_all >> c:\x.bat
ใช้ batch file สร้าง batch file
29 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
30 reg query hklm\software\microsoft\windows\currentversion\run
reg delete hkcu\software\microsoft\windows\currentversion\run /v CONTROLexit /f
31 reg delete hklm\software\microsoft\windows\currentversion\policies\system /v DisableTaskMgr /f
32 for %%f in (*.asm) do tasm %%f
for %%f in (*.obj) do tlink /t %%f
สั่งแปล และลิงค์โปรแกรม
33 attrib > burin | find "H" burinแสดงรายชื่อแฟ้มที่ซ่อนอยู่ แทน grep ใน Linux
34 more a.batแสดงข้อมูลในแฟ้ม a.bat แบบทีละหน้า
35 set hello=worldสร้างตัวแปร และแสดงผลด้วย echo %hello% หรือ set
ต.ย. การสร้าง folder และ file สร้าง folder และแฟ้มด้วย boy1.bat
@echo off
cd \
md abc
cd abc
md aa
md bb
cd aa
echo a > a1
echo b > a2
dir > a3
dir > a4
copy * ..\bb
cd \
dir abc /s/w
ตัวอย่างการใช้งาน
C:\>boy1.bat
a1
a2
a3
a4
        4 file(s) copied.
Volume in drive C has no label.
Volume Serial Number is C876-B72B
Directory of C:\abc
[.]  [..] [aa] [bb]
               0 File(s)       0 bytes

Directory of C:\abc\aa
[.]  [..] a1   a2   a3   a4
               4 File(s)      875 bytes

Directory of C:\abc\bb
[.]  [..] a1   a2   a3   a4
               4 File(s)      875 bytes

     Total Files Listed:
               8 File(s)    1,750 bytes
               8 Dir(s)   786,496 bytes free
C:\>
ต.ย. สร้าง และแปล สร้าง boy2.bat สร้างแปล และประมวลผล java
คำถามคือ ท่านจะแก้ปัญหา เมื่อทดสอบได้หรือไม่ และ output ที่ได้คืออะไร
@echo off
echo help to write Java program and compile and execute
echo wait for result
echo ==================================================
cd c:\j2sdk1.4.2_03\bin\
echo class boy2 { > boy2.java
echo public static void main(String args[]) { >> boy2.java
echo System.out.println("oho batch file"); } } >> boy2.java
javac boy2.java
java boy2
ต.ย. รับค่าผ่าน command line สร้าง boy3.bat รับค่าผ่าน command line
คำถามคือ ผลลัพธ์เป็นอย่างไร ในแต่ละตัวอย่าง
เช่น
c:\>boy3 a b c
c:\>boy3 burin
c:\>boy3 burin b c
c:\>boy3 a loop c
c:\>boy3 a b loop
@echo off
set aaa=wow wow
echo %aaa%
echo %TEMP%
echo =======================
echo %0
echo %1
echo %2
echo =======================
set
pause
cls
if .%1 == .burin goto burin
if .%2 == .loop goto loop1
if .%3 == .loop goto loop2
goto end
:burin
echo burin rujjanapan
dir /w
goto end
:loop1
for %%x in (aa bb cc) do echo %%x
goto end
:loop2
for %%x in (%1 %2 %3) do echo %%x
goto end
:end
echo bye
พิมพ์ 1 - 5 ด้วย DOS Command
dos one to thousand
rem 3 bytes for a file
rem Case 1 : for batch file
for /l %%i in (1,1,5) do (echo %%i)
for /l %%i in (1,1,5) do (echo a> %%i)
rem Case 2 : for Command Line (CLI)
for /l %i in (1,1,5) do (echo %i)
for /l %i in (1,1,5) do (echo a> %i)
สร้างแฟ้ม 1 MB บน DOS ด้วย Batch file
one megabyte one megabyte dos
ผลการทดสอบ
begin = 6:23:59.76
end = 7:02:56.63
used = 28:56.87
การใช้ batch file สร้างแฟ้มขนาด 1 MB โดยเขียนรอบละ 10 Byte ทำงานทั้งหมด 100,000 รอบ โดยสร้างแฟ้มแรกขนาด 10 Byte แล้วสั่งเพิ่มต่อท้ายแฟ้มเดิม ด้วย echo x >> x.txt พบว่าไม่ได้ใช้ทรัพยากรของเครื่องในรอบเดียว แต่ละรอบใช้ทรัพยากรน้อยมาก แต่สิ่งที่ใช้มากที่สุด คือ เวลา (Time) เพราะใช้ไปทั้งหมด 28 นาที 56 วินาที แล้ว หัวอ่านเขียนฮาร์ดดิสก์ ที่ต้องเขียน หยุด เขียน หยุด และปรับตาราง FAT และ DIR ไปถึงหนึ่งแสนครั้ง
@echo off
echo onemb.bat
echo to create a file that has 1 milliion bytes
echo begin on %time%
echo 12345678> onemb.txt
for /l %%i in (1,1,99999) do echo 12345678>> onemb.txt
echo end on %time%
dir onemb.txt
ต.ย. สั่ง download แฟ้ม สั่งให้ download แฟ้มจากอินเทอร์เน็ตผ่าน ftp server
+ ftp://ftp.ipswitch.com
+ ftp://ftp.kitty.in.th
+ ftp://ftp.nectec.or.th
+ ftp://www.mirror.in.th
+ ftp://ftp.chatnfiles.com
@echo off
echo anonymous> my1.cmd
echo anonymous>> my1.cmd
echo cd pub/books>> my1.cmd
echo hash>> my1.cmd
echo bin>> my1.cmd
echo get oo.o2_manual.pdf>> my1.cmd
echo quit>> my1.cmd
echo ftp -s:my1.cmd ftp.kitty.in.th > myftp.bat
echo pause>> myftp.bat
echo exit>> myftp.bat
myftp.bat
ตัวอย่างการใช้งาน
@echo off
echo anonymous > my2.cmd
echo anonymous >> my2.cmd
echo cd simtelnet/winxp/desknote >> my2.cmd
echo lcd e:\ >> my2.cmd
echo hash >> my2.cmd
echo bin >> my2.cmd
echo get freestickynotes.exe >> my2.cmd
echo quit >> my2.cmd
echo ftp -s:my2.cmd ftp.chatnfiles.com > my.bat
echo e:\freestickynotes.exe >> my.bat
my.bat
rem tftp -i 122.122.122.122 get tftpd32.ini
rem http://tftpd32.jounin.net/download/Tftpd32-3.35-setup.exe
ต.ย. ไวรัสอาจเพิ่ม register ทำให้การใช้งานมีปัญหา ไวรัสอาจเพิ่ม register ทำให้การใช้งานมีปัญหา
reg delete hkcu\software\microsoft\windows\currentversion\policies\system /v disablecmd /f
reg delete hkcu\software\microsoft\windows\currentversion\policies\system /v disableregistrytools /f
reg delete hkcu\software\policies\microsoft\internet explorer\control panel /v homepage /f
reg add hkcu\software\microsoft\windows\currentversion\explorer\advanced /v hidden /t reg_dword /d 2 /f
reg add hkcu\software\microsoft\windows\currentversion\explorer\advanced\folder\hidden\showall /v checkedvalue /t reg_dword /d 1 /f
reg add hkcu\software\microsoft\windows\currentversion\explorer\advanced /v hidefileext /t reg_dword /d 0
reg add hkcu\software\microsoft\windows\currentversion\explorer\advanced /v hidden /t reg_dword /d 2
reg add hkcu\software\microsoft\windows\currentversion\explorer\advanced /v hidefileext /t reg_dword /d 0
reg add hklm\system\currentcontrolset\services\sharedaccess /v start /t reg_dword /d 4
reg delete hkcu\software\microsoft\windows\currentversion\policies\system /v disabletaskmgr /f
reg delete hklm\software\microsoft\windows\currentversion\policies\system /v disableregistrytools /f
reg delete hklm\software\microsoft\windows\currentversion\policies\system /v disablecmd /f
reg delete hklm\software\microsoft\windows\currentversion\policies\system /v disabletaskmgr /f
reg add hklm\system\currentcontrolset\services\sharedaccess /v start /t reg_dword /d 2 /f
reg delete hkcu\software\microsoft\windows\currentversion\policies\explorer /v nofolderoptions /f
reg delete hkcu\software\microsoft\windows\currentversion\policies\explorer /v nostartmenumoreprograms /f
reg delete hkcu\software\microsoft\windows\currentversion\policies\explorer /v nofind /f
reg delete hkcu\software\microsoft\windows\currentversion\policies\explorer /v nostartmenumfuprogramslist /f
reg delete hkcu\software\microsoft\windows\currentversion\policies\explorer /v nostartmenusubfolders /f
reg delete hkcu\software\microsoft\windows\currentversion\policies\explorer /v nochangestartmenu /f
reg delete hkcu\software\microsoft\windows\currentversion\policies\explorer /v nosavesettings /f
reg delete hkcu\software\microsoft\windows\currentversion\policies\explorer /v nobandcustomize /f
reg delete hkcu\software\microsoft\windows\currentversion\policies\explorer /v nomovingbands /f
reg delete hkcu\software\microsoft\windows\currentversion\policies\explorer /v noclosedragdropbands /f
reg delete hkcu\software\microsoft\windows\currentversion\policies\explorer /v nosettaskbar /f
reg delete hkcu\software\microsoft\windows\currentversion\policies\explorer /v notoolbarsontaskbar /f
reg delete hkcu\software\microsoft\windows\currentversion\policies\explorer /v noactivedesktop /f
reg delete hkcu\software\microsoft\windows\currentversion\policies\explorer /v classicshell /f
reg delete hkcu\software\microsoft\windows\currentversion\policies\explorer /v noclose /f
reg delete hkcu\software\microsoft\windows\currentversion\policies\explorer /v nologoff /f
reg delete hkcu\software\microsoft\internet explorer\main /v window title /f
ต.ย. ตรวจ host ในเครือข่ายว่า response หรือไม่ ตรวจ host ในเครือข่ายว่า response หรือไม่
rem ถ้าขณะ ping มี ip ใดช้าก็ส่งสัยไว้ก่อนได้เลย
ping 192.168.10.5 -n 1 >c:\pingwireless.txt
ping 192.168.10.6 -n 1 >>c:\pingwireless.txt
ping 192.168.10.35 -n 1 >>c:\pingwireless.txt
ping 192.168.10.36 -n 1 >>c:\pingwireless.txt
rem บ้านดร. ping 192.168.10.37 -n 1 >>c:\pingwireless.txt
ping 192.168.10.38 -n 1 >>c:\pingwireless.txt
ping 192.168.10.39 -n 1 >>c:\pingwireless.txt
ping 192.168.10.40 -n 1 >>c:\pingwireless.txt
ping 192.168.10.41 -n 1 >>c:\pingwireless.txt
ping 192.168.10.42 -n 1 >>c:\pingwireless.txt
rem ชั้น 3 บริหาร ping 192.168.10.43 -n 1 >>c:\pingwireless.txt
sort c:\pingwireless.txt
notepad c:\pingwireless.txt
pause
ต.ย. การเขียนเว็บเพจ 3 หน้าด้วย DOS Command มีขั้นตอนดังนี้ 1) เว็บเพจแรกชื่อ a.htm มีคำว่า ant และเชื่อมโยงไปยัง b.htm 2) เว็บเพจที่สองชื่อ b.htm มีคำว่า boy และเชื่อมโยงไปยัง c.htm 3) เว็บเพจที่สามชื่อ c.htm มีคำว่า cat และเชื่อมโยงกลับมายัง a.htm 4) เปิดเว็บเพจ a.htm ด้วย explorer ซึ่งทั้ง 4 ขั้นตอนนี้สามารถมอบเป็นภาระของ batch file ได้
del a.htm 
del b.htm 
del c.htm
echo ^<body^> > a.htm
echo ant >> a.htm
echo ^<a href=b.htm^>go b^</a^> >> a.htm
echo ^<body bgcolor=yellow^> > b.htm
echo boy >> b.htm
echo ^<a href=c.htm^>go c^</a^> >> b.htm
echo ^<body bgcolor=green^> > c.htm
echo cat >> c.htm
echo ^<a href=a.htm^>go c^</a^> >> c.htm
explorer a.htm 
ต.ย. การหาค่า MacAddress ในเครือข่าย โดยใช้ ping เข้าติดต่อแต่ละเครื่อง แล้วใช้ Address Resolution Protocol (ARP) แสดงหมายเลข MacAddress
@echo off
FOR /L %%n IN (1,1,10) DO ping 192.168.2.%%n -w 1000 -n 1
arp -a
ต.ย. สั่งคัดลอกภาพใน spotlight บน win10
ชอบภาพใน Spotlight บน Windows 10
พักนี้ .. นั่งใช้เครื่องคอมพิวเตอร์ แล้วเห็นภาพสวย จากบริการ Spotlight ใน Windows 10 ก็อยากเก็บไว้เป็นที่เป็นทาง เปิดดูใน beartai.com กับอีกหลายคำแนะนำในหลายเว็บไซต์ ก็อยากทำบ้าง แต่อยากให้ง่าย แบบ one click แล้ว ผ่าน batch file แล้วได้เห็นภาพเลย
ขั้นตอนการใช้ batchfile
1. Right click บน link (myspotlight.bat แล้ว Save link as ไปไว้ที่ Desktop
2. เปิด Windows Explorer เลือก Desktop แล้ว Double click เพื่อ run myspotlight.bat ถ้า Windows protected your PC ขึ้นมาเตือน ให้เลือก More info แล้วคลิ๊ก Run anyway
3. ถ้าทุกอย่างเรียบร้อย โปรแกรม Windows explorer จะเปิดภาพแรกขึ้นมา และเปิด Folder ที่เก็บภาพทั้งหมดให้
สรุปว่า .. ผมเขียน Batch file ชื่อ myspotlight.bat ทำหน้าที่คัดลอกแฟ้มภาพ ที่เก็บไว้อยู่แล้ว ไปวางไว้ในห้อง myspotlight บน desktop แล้วเปลี่ยนชื่อ และเลือกมา เฉพาะแฟ้มภาพใหญ่ที่ขนาดเกิน 100KB ซึ่งบริการภาพชุด Spotlight นี้เป็นของ Windows 10 ตรวจสอบบริการ โดยกด Right click บน Desktop เลือก Personalize, Lock screen, Background Preview = "Windows spotlight" แล้ววันหนึ่งได้ถามลูกศิษย์ ว่าเห็น Spotligh หรือไม่ เค้าบอกว่า ปิดบริการนี้กันหมด เพราะไม่ชอบการเปลี่ยนภาพ
Windows Spotlight is a feature included by default in Windows 10 that downloads pictures and advertisements automatically from Bing and displays them when the lock screen is being shown on a computer running Windows 10. Users are occasionally given an opportunity to mark whether they wish to see more or fewer images of a similar type, and sometimes the images are overlaid with links to advertisements. In 2017, Microsoft began adding location information for many of the photographs.
+ wiki/Windows_Spotlight
ตัวอย่างการใช้คำสั่ง
+ คำสั่ง rename ที่ technet.microsoft.com
+ คำสั่ง for ที่ stackoverflow.com/../37515901
+ คำสั่ง goto ที่ stackoverflow.com/../37515901
rem myspotlight.bat
rem Test on Windows 10
rem This batch file can be saved in temporary folder.
rem === 1 : Copy section ===
mkdir %userprofile%\desktop\myspotlight
cd %localappdata%\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets
copy *.* %userprofile%\desktop\myspotlight
cd %userprofile%\desktop\myspotlight
rem === 2 : Delete small size section ===
FOR %%F IN (*.*) DO ( IF %%~zF LSS 100000 del %%F )
rem === 3 : Rename section ===
ren *.* *.jpg
SET COUNT=1
SET PREFIX=me
FOR /f "tokens=*" %%G IN ('dir /b *.jpg') DO (call :renum "%%G")
GOTO :end
:renum
 ren %1 %PREFIX%_%count%.jpg
 set /a count+=1
 GOTO :EOF
:end
rem === 4 : Open first photo section ===
call explorer %userprofile%\desktop\myspotlight
call explorer me_1.jpg
ต.ย. สั่งลบแฟ้มในห้อง temp
dir %temp% | more
echo Ctrl-C to break
pause
del %temp% /s /f
rem dir %userprofile%\downloads
rem dir %userprofile%"\AppData\Local\Google\Chrome\User Data"
rem dir %appdata%\Mozilla\Firefox\Profiles
rem dir C:\Users\ACER\AppData\Roaming\Mozilla\Firefox\Profiles
rem caution : do not remove "xxx.default" in Firefox Profiles
การนำ macOS เข้า Virtualbox เพื่อการศึกษา

+ ขั้นตอนใน wikigain.com
+ ขั้นตอนใน saintlad.com
วันนี้ (18 ม.ค.62) มีโอกาส พร้อมทั้ง Hardware, Software, Peopleware, Data และ Procedure จึงได้ทดลองติดตั้งระบบปฏิบัติการของ Steve Jobs (เคยจับเครื่องของหัวหน้า จำได้ว่าเก้เก้กังกังตลอด) พบว่า ลงได้เรียบร้อยดีตามคาด ไม่สะดุดอะไรให้ต้องใช้เวลา ลงเสร็จก็ทิ้งไว้ก่อน ว่าง ๆ คงหาเวลามาแกะ มาไซร้กันเป็นลำดับต่อไป หนึ่งในเรื่องที่น่าสนใจคือ การเข้ากำหนดค่าผ่าน command line ทำให้นึกถึงการเขียน batch file ขึ้นมาครับ
cd "C:\Program Files\Oracle\VirtualBox\"
VBoxManage.exe modifyvm "macOS Sierra" --cpuidset 00000001 000106e5 00100800 0098e3fd bfebfbff
VBoxManage setextradata "macOS Sierra" "VBoxInternal/Devices/efi/0/Config/DmiSystemProduct" "iMac11,3"
VBoxManage setextradata "macOS Sierra" "VBoxInternal/Devices/efi/0/Config/DmiSystemVersion" "1.0"
VBoxManage setextradata "macOS Sierra" "VBoxInternal/Devices/efi/0/Config/DmiBoardProduct" "Iloveapple"
VBoxManage setextradata "macOS Sierra" "VBoxInternal/Devices/smc/0/Config/DeviceKey" "ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc"
VBoxManage setextradata "macOS Sierra" "VBoxInternal/Devices/smc/0/Config/GetKeyFromRealSMC" 1
เขียน batch สั่งเก็บผลการ ping ลงแฟ้มในอนาคต
Step : 01 .. 10
05 | 06 | 07 | 08 | 09 | 10 |
แม้ว่าเราจะย้อนกลับไปเปลี่ยนอดีตไม่ได้
แต่เรากำหนดสิ่งที่จะให้เกิดขึ้นในอนาคตได้
เหมือนในภาพยนตร์ เรื่อง The letter (นางเอกเป็น webmaster) ซึ่งในเรื่องพระเอก เป็นผู้กำหนดว่า ในอนาคตจะให้เกิดอะไรขึ้นบ้างผ่านการส่งข้อความไปในอนาคต กลับมาที่ระบบคอมพิวเตอร์ เราสามารถเขียน Batch file ที่ใช้คำสั่งภายใน (Internal Command) บนระบบปฏิบัติการ (Windows) เพื่อกำหนดงาน (Job) ที่ต้องทำในแต่ละชั่วโมง แต่ละวันได้ (Daily) ในอนาคตได้ กรณีนี้บันทึกผลการ ping www.google.com ทุกวัน เก็บผลลัพธ์ไว้เป็นแฟ้ม โดยชื่อแฟ้มเป็นวันที่ และเวลา (File name) หรือจะเก็บข้อมูลวันที่และเวลาเข้าไปในตัวแฟ้ม ก็สามารถทำได้ เมื่อถึงเวลาก็จะนำแฟ้มเหล่านั้นไปใช้ประโยชน์ต่อไป
@echo off
rem homepath=c:\users\acer
rem date=mon 12/31/2018
rem time=21:16:12.76
cd %homepath%\desktop
set yyyymmdd=%date:~10,4%%date:~4,2%%date:~7,2%
set hhmmss=%time:~0,2%%time:~3,2%%time:~6,2%
set keepping=%yyyymmdd%_%hhmmss%
echo %keepping%
echo %keepping% >> %keepping%.txt
ping www.google.com -n 3 >> %keepping%.txt
pause
เขียน keepping.bat สั่งตรวจสอบด้วยการ ping ว่าตอนที่มีปัญหา เครื่องใดที่ไม่ตอบ ping บ้าง ถ้าไม่ไปดูใน log ต่าง ๆ ที่เกี่ยวข้อง ก็ทำเก็บ log จาก client เอง
@echo off
rem keepping.bat www.google.com
rem https://www.tecmint.com/linux-ping-command-examples/
set yyyymmdd=%date:~10,4%%date:~4,2%%date:~7,2%
set hhmmss=%time:~0,2%%time:~3,2%%time:~6,2%
set keepping=%yyyymmdd%_%hhmmss%
if .%1 == . goto end
ping %1 -n 20 > %keepping%.txt
ping 172.30.1.1 -n 20 >> %keepping%.txt
%0 %1
การรอคอย และใช้ curl ผ่าน command line
zongkiat pawadee 28 ก.ค.2563 : webp quality 10, compress 6
ผศ.ดร.ทรงเกียรติ ภาวดี
ารรอคอย (Wait) มีคำสั่งให้เลือกใช้ได้หลายแบบ/หลายวิธี เพื่อใช้ในการเขียน Batch file เช่น Pause, Sleep, Timeout พบว่า ผศ.ดร.ทรงเกียรติ ภาวดี ได้แชร์โค้ดเล่าเรื่องในเฟซบุ๊ก มีตัวอย่างการเขียน Batch file 13 บรรทัด พบว่า มีการเรียกใช้ Timeout ของ DOS และ Curl ซึ่งต้องมีการติดตั้งเพิ่ม และตัวแปร %RANDOM% ซึ่งเป็น Build-in variable ใน Windows Environment Variables ซึ่งคำสั่ง Timeout มีมาตั้งแต่ Windows 7 (อ่านเพิ่มที่ robvanderwoude.com/wait และ ss64.com/nt/timeout)
ส่วน Curl นั้นต้องติดตั้งเพิ่มเติม สำหรับใช้ใน Batch file (haxx.se/download, haxx.se/windows/) ปกติใช้ Curl ในภาษา PHP เป็นฟังก์ชันที่ผมเลือกใช้แทน file_get_contents ในกรณีที่เครื่องบริการไม่อนุญาต allow_url_fopen ไว้ใน php.ini config file (thaiall.com/php/ , thaiall.com/line/)
DOS> curl http://www.thaiall.com
DOS> curl http://www.thaiall.com > x.htm
DOS> timeout /t 10 (รอสิบวินาที หรือกดปุ่มใด ๆ ก็หลุดออกมาได้)
DOS> powershell start-sleep -m 2000 (รอ 2000 millisecond = 2 วินาที)
PS> start-sleep -m 3000 (ถ้าไม่รอกด ctrl+c / ctrl+break ปุ่มอื่นไม่หลุด)
แนะนำเว็บไซต์ (Website guide) + computerhope.com/batch.htm
+ ericphelps.com/batch/index.htm
+ ericphelps.com/batch/tricks/index.htm
Thaiall.com