Tập tin Batch (.bat) là cách để thực thi các công việc trên máy tính một cách tự động. Bạn có thể tự động hóa các tác vụ hàng ngày, rút ngắn thời gian cần thiết khi làm việc nào đó, và biến một quá trình phức tạp thành điều gì đó mà bất cứ ai cũng có thể làm được. Từ khi chương trình như AutoHotkey ra đời, nhiều người đã không muốn mất thời gian để viết hay tìm hiểu về tập tin .bat, thậm chí họ không biết những gì mà nó có thể làm
Trong bài viết này sẽ hướng dẫn các bạn cách tạo một file batch đơn giản và một số điều cơ bản về nó. Đồng thời bạn sẽ được cung cấp một số nguồn tài nguyên cho việc học và viết những tập tin batch.
Giả sử bạn thường xuyên gặp các vấn đề về mạng, và luôn phải mở hộp thoại command prompt để nhập vào các lệnh như ipconfig, hay Ping tới Google hoặc trang bất kỳ để kiểm tra sự cố. Trong khi đó, chỉ cần một file BAT đơn giản sẽ giúp công việc này hiệu quả hơn, bạn còn có thể dùng file này cho tất cả các máy tính khác nếu muốn.
Bước 1: Tạo file BAT
Đầu tiên bạn tạo một text document mới trên desktop của mình (chuột phải chọn New > text document). Kích đúp chuột để mở file này, vào menu File > Save As…, tại cửa sổ Save As bạn nhập tên cho tập tin và thêm đuôi “.bat” (không có dấu nháy kép). Ví dụ đặt tên là testBAT.bat.
Tiếp theo, tại phần Save as Type chọn All Files (thay cho Text Document (*.txt)), kích Save để lưu lại.
Bước 2: Một số code cơ bản
Nếu bạn đã biết cách chạy những dòng lệnh trong command prompt, bạn sẽ có một Wiz cho việc tạo file BAT bởi chúng có cùng một thứ ngôn ngữ. Tất cả những gì bạn cần làm là “nói” cho command prompt biết rằng bạn muốn đặt các lệnh trong cùng một file, thay vì gõ chúng mỗi khi chạy command prompt. Điều này không những giúp bạn tiết kiệm thời gian và công sức mà còn cho phép đưa vào một số logic (như vòng lặp đơn giản, câu lệnh có điều kiện…) đó là những thủ tục có khả năng lập trình về mặt khái niệm.
Sau đây là 7 lệnh đơn giản mà bạn nên biết:
· TITLE: tên cửa sổ cho tập tin BAT.
· ECHO: lệnh in của file BAT. Bất cứ điều gì sau ECHO sẽ được hiển thị trong command prompt (như văn bản) trên từng dòng.
· ECHO OFF: lệnh này thường được đặt trên đầu của file BAT. Khi chạy file BAT có lệnh này, các lệnh phía dưới ECHO OFF sẽ không được hiển thị (tức là chỉ có nội dung, không cho biết lệnh nào được dùng).
· PAUSE: khi sử dụng lệnh này, một thông báo “press any key to continue…” sẽ hiển thị trên màn hình, toàn bộ lệnh trong file BAT sẽ tạm dừng cho đến khi bạn nhấn phím bất kỳ để khởi động lại. Bằng cách này bạn sẽ có cơ hội nhìn thấy những gì đang diễn ra trên màn hình.
· CLS: làm sạch màn hình cửa sổ DOS (rất hữu ích khi chúng trở nên dày đặc và lộn xộn).
· IPCONFIG: thông tin về mạng hiển thị trên DOS (rất hữu ích đối với các nhà quản trị mạng).
· PING: ping đến địa chỉ IP, cho biết bạn có thể liên hệ với máy tính đó hay không. Lệnh này cũng trả về độ trễ (ping time) và mặc định sẽ ping 3 lần.
Bước 3: Một số logic
Chúng ta cần lập kế hoạch cho chương trình của mình. Bất kỳ một nhà lập trình giỏi nào cũng suy nghĩ về khuôn khổ chung của công việc trước khi tiến hành đánh dấu gạch ngang vào những gì cần làm. Điều này giúp ngăn ngừa những sai lầm logic rất khó thực hiện lại.
Đối với chương trình trong bài viết này, chúng ta cần kiểm tra hệ thống mạng máy tính và những thiết lập internet với lệnh “ipconfig /all”, sau đó rà soát thông tin. Cuối cùng ping tới google.com để tìm hiểu xem chúng ta thực sự có quyền truy cập internet. Nếu mọi thứ đều tốt đẹp, ta sẽ cho tạm dừng chương trình.
Bước 4: Viết nội dung cho file BAT
Để chỉnh sửa nội dung cho tập tin .bat, kích chuột phải vào đó chọn “edit”. File BAT sẽ được mở bằng trình soạn thảo Notepad, ở đây bạn sẽ thấy một trang trống và sẵn sàng cho chúng ta nhập nội dung vào đó.
(Mỗi lệnh sẽ có dòng chú thích dạng CODE ::Comment, với phần in đậm là câu lệnh mà ta sử dụng).
ECHO OFF
::CMD se khong hien thi lenh nao duoc thu thi phia duoi.
ECHO QuanTriMang: Demo tao file BAT
:: In ra dong van ban
IPCONFIG /ALL
:: Hien thi thong tin ve mang tren cua so command prompt
PAUSE
:: Tam dung thuc thi cac lenh khac de nguoi dung xem cac thong tin quan trong.
PING gisgpsrs.blogspot.com
:: Ping toi trang web ban muon
ECHO Toan bo thong tin ve Gisgpsrs blog Ping duoc.
::In ra dong van ban
PAUSE
:: Cho phep nguoi dung xem ket qua. Boi vi day la dong lenh cuoi cung nen sau khi nhan phim bat ky, cua so command se duoc dong lai.
::CMD se khong hien thi lenh nao duoc thu thi phia duoi.
ECHO QuanTriMang: Demo tao file BAT
:: In ra dong van ban
IPCONFIG /ALL
:: Hien thi thong tin ve mang tren cua so command prompt
PAUSE
:: Tam dung thuc thi cac lenh khac de nguoi dung xem cac thong tin quan trong.
PING gisgpsrs.blogspot.com
:: Ping toi trang web ban muon
ECHO Toan bo thong tin ve Gisgpsrs blog Ping duoc.
::In ra dong van ban
PAUSE
:: Cho phep nguoi dung xem ket qua. Boi vi day la dong lenh cuoi cung nen sau khi nhan phim bat ky, cua so command se duoc dong lai.
Bạn có thể tải file testBAT.bat
Bước 5: Chạy file BAT vừa tạo
Sau khi chèn nội cung cho file BAT, bạn lưu lại rồi kích đúp chuột vào đó để chạy. Màn hình sẽ hiển thị kết quả như sau:
Vậy là bạn đã thành công!
Nếu bạn muốn tìm hiểu thêm về các file BAT, có thể xem các lệnh có sẵn tại đây. Sau đó bạn có thể viết các chương trình riêng cho mình hoặc tham khảo các ví dụ có sẵn tại đây.
Sử dụng các tập tin BAT là giải pháp thực sự hữu ích để chạy các chương trình (chẳng hạn như Java) chỉ với một dòng lệnh, giúp tiết kiệm thời gian thay vì phải gõ các dòng lệnh từ đầu. Sau khi nắm rõ được cách thức hoạt động và các lệnh của nó, người dùng có thể dễ dàng tạo cho mình những file phục vụ cho công việc riêng của mình một cách nhanh chóng.
An A-Z Index of the Windows CMD command line
ADDUSERS Add or list users to/from a CSV file ARP Address Resolution Protocol ASSOC Change file extension associations• ASSOCIAT One step file association ATTRIB Change file attributesb BCDBOOT Create or repair a system partition BOOTCFG Edit Windows boot settings BROWSTAT Get domain, browser and PDC infoc CACLS Change file permissions CALL Call one batch program from another• CD Change Directory - move to a specific Folder• CHANGE Change Terminal Server Session properties CHKDSK Check Disk - check and repair disk problems CHKNTFS Check the NTFS file system CHOICE Accept keyboard input to a batch file CIPHER Encrypt or Decrypt files/folders CleanMgr Automated cleanup of Temp files, recycle bin CLEARMEM Clear memory leaks CLIP Copy STDIN to the Windows clipboard. CLS Clear the screen• CLUSTER Windows Clustering CMD Start a new CMD shell CMDKEY Manage stored usernames/passwords COLOR Change colors of the CMD window• COMP Compare the contents of two files or sets of files COMPACT Compress files or folders on an NTFS partition COMPRESS Compress individual files on an NTFS partition CON2PRT Connect or disconnect a Printer CONVERT Convert a FAT drive to NTFS. COPY Copy one or more files to another location• CSCcmd Client-side caching (Offline Files) CSVDE Import or Export Active Directory data d DATE Display or set the date• DEFRAG Defragment hard drive DEL Delete one or more files• DELPROF Delete NT user profiles DELTREE Delete a folder and all subfolders DevCon Device Manager Command Line Utility DIR Display a list of files and folders• DIRUSE Display disk usage DISKCOMP Compare the contents of two floppy disks DISKCOPY Copy the contents of one floppy disk to another DISKPART Disk Administration DNSSTAT DNS Statistics DOSKEY Edit command line, recall commands, and create macros DSACLs Active Directory ACLs DSAdd Add items to active directory (user group computer) DSGet View items in active directory (user group computer) DSQuery Search for items in active directory (user group computer) DSMod Modify items in active directory (user group computer) DSMove Move an Active directory Object DSRM Remove items from Active Directorye ECHO Display message on screen• ENDLOCAL End localisation of environment changes in a batch file• ERASE Delete one or more files• EVENTCREATE Add a message to the Windows event log EXIT Quit the current script/routine and set an errorlevel• EXPAND Uncompress files EXTRACT Uncompress CAB filesf FC Compare two files FIND Search for a text string in a file FINDSTR Search for strings in files FOR /F Loop command: against a set of files• FOR /F Loop command: against the results of another command• FOR Loop command: all options Files, Directory, List• FORFILES Batch process multiple files FORMAT Format a disk FREEDISK Check free disk space (in bytes) FSUTIL File and Volume utilities FTP File Transfer Protocol FTYPE Display or modify file types used in file extension associations•g GLOBAL Display membership of global groups GOTO Direct a batch program to jump to a labelled line• GPUPDATE Update Group Policy settingsh HELP Online Helpi iCACLS Change file and folder permissions IF Conditionally perform a command• IFMEMBER Is the current user in an NT Workgroup IPCONFIG Configure IPk KILL Remove a program from memoryl LABEL Edit a disk label LOCAL Display membership of local groups LOGEVENT Write text to the NT event viewer LOGMAN Manage Performance Monitor LOGOFF Log a user off LOGTIME Log the date and time in a filem MAPISEND Send email from the command line MBSAcli Baseline Security Analyzer. MEM Display memory usage MD Create new folders• MKLINK Create a symbolic link (linkd) MODE Configure a system device MORE Display output, one screen at a time MOUNTVOL Manage a volume mount point MOVE Move files from one folder to another• MOVEUSER Move a user from one domain to another MSG Send a message MSIEXEC Microsoft Windows Installer MSINFO Windows NT diagnostics MSTSC Terminal Server Connection (Remote Desktop Protocol) MV Copy in-use filesn NET Manage network resources NETDOM Domain Manager NETSH Configure Network Interfaces, Windows Firewall & Remote access NETSVC Command-line Service Controller NBTSTAT Display networking statistics (NetBIOS over TCP/IP) NETSTAT Display networking statistics (TCP/IP) NOW Display the current Date and Time NSLOOKUP Name server lookup NTBACKUP Backup folders to tape NTRIGHTS Edit user account rightso OPENFILES Query or display open filesp PATH Display or set a search path for executable files• PATHPING Trace route plus network latency and packet loss PAUSE Suspend processing of a batch file and display a message• PERMS Show permissions for a user PERFMON Performance Monitor PING Test a network connection POPD Restore the previous value of the current directory saved by PUSHD• PORTQRY Display the status of ports and services POWERCFG Configure power settings PRINT Print a text file PRINTBRM Print queue Backup/Recovery PRNCNFG Display, configure or rename a printer PRNMNGR Add, delete, list printers set the default printer PROMPT Change the command prompt• PsExec Execute process remotely PsFile Show files opened remotely PsGetSid Display the SID of a computer or a user PsInfo List information about a system PsKill Kill processes by name or process ID PsList List detailed information about processes PsLoggedOn Who's logged on (locally or via resource sharing) PsLogList Event log records PsPasswd Change account password PsService View and control services PsShutdown Shutdown or reboot a computer PsSuspend Suspend processes PUSHD Save and then change the current directory•q QGREP Search file(s) for lines that match a given pattern.r RASDIAL Manage RAS connections RASPHONE Manage RAS connections RECOVER Recover a damaged file from a defective disk. REG Registry: Read, Set, Export, Delete keys and values REGEDIT Import or export registry settings REGSVR32 Register or unregister a DLL REGINI Change Registry Permissions REM Record comments (remarks) in a batch file• REN Rename a file or files• REPLACE Replace or update one file with another RD Delete folder(s)• RMTSHARE Share a folder or a printer ROBOCOPY Robust File and Folder Copy ROUTE Manipulate network routing tables RUN Start | RUN commands RUNAS Execute a program under a different user account RUNDLL32 Run a DLL command (add/remove print connections)s SC Service Control SCHTASKS Schedule a command to run at a specific time SCLIST Display NT Services SET Display, set, or remove environment variables• SETLOCAL Control the visibility of environment variables• SETX Set environment variables permanently SFC System File Checker SHARE List or edit a file share or print share SHIFT Shift the position of replaceable parameters in a batch file• SHORTCUT Create a windows shortcut (.LNK file) SHOWGRPS List the NT Workgroups a user has joined SHOWMBRS List the Users who are members of a Workgroup SHUTDOWN Shutdown the computer SLEEP Wait for x seconds SLMGR Software Licensing Management (Vista/2008) SOON Schedule a command to run in the near future SORT Sort input START Start a program or command in a separate window• SU Switch User SUBINACL Edit file and folder Permissions, Ownership and Domain SUBST Associate a path with a drive letter SYSTEMINFO List system configurationt TASKLIST List running applications and services TASKKILL Remove a running process from memory TIME Display or set the system time• TIMEOUT Delay processing of a batch file TITLE Set the window title for a CMD.EXE session• TLIST Task list with full path TOUCH Change file timestamps TRACERT Trace route to a remote host TREE Graphical display of folder structure TSSHUTDN Remotely shut down or reboot a terminal server TYPE Display the contents of a text file• TypePerf Write performance data to a log fileu USRSTAT List domain usernames and last loginv VER Display version information• VERIFY Verify that files have been saved• VOL Display a disk label•w WHERE Locate and display files in a directory tree WHOAMI Output the current UserName and domain WINDIFF Compare the contents of two files or sets of files WINMSD Windows system diagnostics WINMSDP Windows system diagnostics II WINRM Windows Remote Management WINRS Windows Remote Shell WMIC WMI Commands WUAUCLT Windows Updatex XCACLS Change file and folder permissions XCOPY Copy files and folders :: Comment / Remark•


