Breaking News
Loading...
Saturday, July 20, 2013

Sử dụng file BAT để tự động hóa máy tính

7/20/2013 11:01:00 PM
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.

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 attributes
b
   BCDBOOT  Create or repair a system partition
   BOOTCFG  Edit Windows boot settings
   BROWSTAT Get domain, browser and PDC info
c
   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 Directory
e
   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 files
f
   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 settings
h
   HELP     Online Help
i
   iCACLS   Change file and folder permissions
   IF       Conditionally perform a command•
   IFMEMBER Is the current user in an NT Workgroup
   IPCONFIG Configure IP
k
   KILL     Remove a program from memory
l
   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 file
m
   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 files
n
   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 rights
o
   OPENFILES Query or display open files
p
   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 configuration
t
   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 file
u
   USRSTAT  List domain usernames and last login
v
   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 Update
x
   XCACLS   Change file and folder permissions
   XCOPY    Copy files and folders
   ::       Comment / Remark•

0 comments:

Post a Comment

 
Toggle Footer