HỖ TRỢ
02516-544-809
1900-636-507
 
Giờ làm việc
Sáng 07h30 đến 12h00
Chiều 13h30 đến 17h00
WD0010 | Command promt nâng cao phần 2
  • Lệnh tạm nghỉ (PAUSE):

khi gặp lệnh này chương trình dịch sẽ tạm nghỉ cho tới khi bạn bấm phím bất kỳ. Nó thường được dùng để kiểm tra tiến trình chạy của Batch File.
Ví dụ:
CODE
ECHO OFF
ECHO:
ECHO File BAtch duoc xem la thanh phan khong the thieu cua HĐH DOS
ECHO:
Echo Hy vong bai viet se co ich voi cac ban
ECHO:
ECHO http://vnnewbies.com
ECHO:
PAUSE

  •  Lệnh gọi một tệp BAT (CALL):

Lệnh này giúp bạn gọi ra một File Batch khác mà không kết thúc File Batch dang thực thi. Lưu ý: File có phần mở rộng là .BAT chỉ gọi được file có phần mở rộng là .BAT chứ không thể gọi file có phần mở rộng là .CMD. Và ngược lại.
Tất nhiên là file BATCH được gọi sẽ tuân theo định dạng mà file BATCH đang thực thi đã định dạng trước đó.
Ví dụ:
CODE
ECHO OFF
ECHO:
ECHO File BAtch duoc xem la thanh phan khong the thieu cua HĐH DOS
ECHO:
Echo Hy vong bai viet se co ich voi cac ban
ECHO:
PAUSE
ECHO:
CALL newbiex.cmd
ECHO:
ECHO http://vnnewbies.com
ECHO:
PAUSE

  •  Lệnh hiển thị các lệnh (ECHO):

Với 2 chế độ ON/OFF giúp bạn điều chỉnh việc cho phép hiển thị các dòng lệnh thực thi hoặc ẩn nó đi.
Khi gặp lệnh ECHO OFF DOS sẽ thực hiện các lệnh ở dòng tiếp theo mà không hiển thị cả câu lệnh lên cho tới khi gặp lệnh ECHO ON.
Thông thường người ta dùng lệnh ECHO để đưa ra một thông báo nào đó và sử dụng mẫu ECHO: để DOS cho ra một dòng trống.
Ví dụ: Tệp newbiex.cmd mà mình gọi ra ở ví dụ trên:
CODE
ECHO VnNewbies.com
ECHO:
Echo Share is Love
ECHO:
PAUSE

  •  Ghi chú thích trong file BATCH (REM):

Để ghi chú thích trong file BATCH bạn dùng lệnh REM. Các chú thích đặt sau lệnh này sẽ không được thực thi và hiển thị.
Công Cụ Dr.Batcher
 Reduced: 70% of original size [ 565 x 349 ] - Click to view full image

  •  Lệnh điều khiển vòng lặp (For):

CODE
FOR %%Biến IN (Tập_hợp) DO Lệnh_cần_làm
Lệnh này có nghĩa là một Biến sẽ lần lượt nhận các giá trị trong Tập_hợp để thực hiện các Lệnh_cần_làm.
CODE
FOR %%i IN (D,E,F) DO COPY vnnewbies.cmd %%i
Với lệnh này biến i sẽ lần lượt nhận các giá trị D, E , F từ dó sẽ thực hiện lệnh copy tệp vnnewbies.cmd sang thư mục gốc của các phân vùng C, D, F.

  •  Phép kiểm tra điều kiện hay phép rẽ nhánh (If):

Đây là lệnh giúp bạn thực hiện từng lệnh khác nhau tùy vào từng điều kiện khác nhau. Phép thử có 3 kiểu:
If [not] exist: Kiểm tra sự tồn tại
If [not] Chuỗi1 = = Chuỗi2 : So sánh 2 chuỗi để tiến hành công việc
If [not] errorlevel # : Nếu có lỗi ở mức # thì thực hiện công việc
+) Với errorlevel 0 là không có lỗi trong quá trình thực hiện
+) Với errorlevel 1 là có lỗi xảy ra
[not] là thành phần tùy chọn giúp bạn phủ định điều kiện đứng sau nó. Tương tự như bằng một giá trị nào đó hoặc không bằng.
Ví dụ: Ở đây mình sẽ lấy một ví dụ về trường hợp 1 và 3, còn trường hợp bạn có thể xem thêm ứng dụng ở dưới.
CODE
@echo off
echo.
FOR %%i IN (D,E,F) DO COPY vnnewbies.cmd %%i:
echo.
rem Kiểm tra xem có lỗi hay không. Nếu có sẽ đưa ra thông báo
IF errorlevel 1 Echo Co loi xay ra o buoc nay
echo.
echo Noi dung file vnnewbies.cmd:
echo.
rem Kiểm tra xem có tồn tại tệp tin vnnewbies.cmd trên phân vùng D không? Nếu có thì thực hiện chạy nó.
IF exist D:\vnnewbies.cmd CALL D:\vnnewbies.cmd
PAUSE

  •  Lệnh bước nhảy (GoTo):

Lệnh này giúp chúng ta bỏ qua một đoạn lệnh nào đó để di chuyển tới vị trí mới. Thông thường người ta kết hợp lệnh này với cấu trúc rẽ nhánh đã đề cập phía trên (If) để thực hiện các việc khác nhau cho các điều kiện khác nhau.
CODE
ECHO Chon Y - Neu dong y
ECHO Chon N - Neu ko dong y
set /p chon= Lua chon cua ban la:
if %chon% == Y goto ok
if %chon% == N goto exit
goto exit
:ok
call vnnewbies.cmd
ECHO.
:exit
ECHO Cam on ban da su dung chuong trinh
Với cấu trúc này nếu bạn nhập vào Y thì Batch File sẽ chuyển tới đoạn lệnh bắt đầu bằng :ok và và ngược lại.

  •  Tham số hình thức (%0 %1 …):

Nó chỉ có giá trị khi bạn truyền giá trị cho nó. Hãy lấy một ví dụ đơn giản để các bạn dễ hiểu.
Với Batch File có tên vnnewbie.bat với nội dung như ví dụ ở phần 3.1:
CODE
FOR %%i IN (D,E,F) DO COPY %0 %%i:
Khi chúng ta nhập lệnh trên cửa sổ DOS: vnnewbie vnnewbies.cmd thì Batch File trên sẽ tự động nhận giá trị vnnewbies.cmd thay vào tham số hình thức của nó. Lúc này file vnnewbie.bat sẽ chạy với nội dung:
CODE
FOR %%i IN (D,E,F) DO COPY vnnewbies.cmd %%i

  •  TẬP LỆNH XỬ LÝ THEO LÔ

Ðể tránh việc phải gõ đi gõ lại một chuỗi lệnh mất thì giờ, MS-DOS cho phép ta đặt các chuỗi lệnh trong một tập tin, gọi là tập lệnh xử lý theo lô (Batch File) còn gọi là file BAT vì đều có phần mở rộng của file là BAT. Khi sử dụng ta chỉ cần gọi tên file BAT và nhấn Enter thì một loạt các chuỗi lệnh trong nó sẽ tuần tự thi hành. Trong file BAT, ta có thể dùng các lệnh nội trú và ngoại trú của DOS, các câu lệnh, tham số của BAT và các chương trình khác.
Ta có thể sử dụng các lệnh hoặc chương trình tạo văn bản của DOS như COPY CON, EDIT.COM, SIDEKICK, WINWORD,…  để tạo ra các file BAT.
Ví dụ:  Dùng lệnh của MS-DOS
C:\>COPY CON  NHAPDATA.BAT 
hay dùng chương trình EDIT :
C:\>EDIT NHAPDATA.BAT      
Tập tin AUTOEXEC.BAT trong đĩa hệ thống là một file BAT đặc biệt. Khi khởi động máy, tuần tự các lệnh chứa trong nó sẽ được thi hành. Tập tin AUTOEXEC.BAT thường có các lệnh báo đường dẫn, thiết lập cấu hình, tạo dấu nhắc, báo ngày giờ và một số thông báo nhắc nhở người sử dụng.
Ta có thể tạo ra một tập tin AUTOEXEC.BAT đơn giản sau:
A:\>COPY CON AUTOEXEC.BAT                                        
REM  TAP TIN KHOI DONG MAY                                          
ECHO OFF                                                                            
TIME                                                                                       
DATE                                                                                     
PATH C:\; C:\DOS; C:\NC; C:\PASCAL; C:\WINDOW;        
PROMPT $P$G                                                                     
ECHO == PHONG MAY TINH CHAO CAC BAN == 
Gõ phím chức năng  F6 (hoặc Ctrl + Z)                                
1 file(s) copied

  • Lập trình cho file BAT :

Ta có thể lập trình cho file BAT bằng cách sử dụng các lệnh FOR, GOTO, IF, … với các tham số hình thức %0, 1%, 2%, … (cho phép sử dụng 10 tham số hình thức từ %0 đến %9). Nếu ta dùng ký hiệu % như một thành phần trong file BAT thì phải ghi dấu % hai lần. Tham số %0 tương ứng với tên file BAT đang được thực hiện và %1, %2,… tương ứng với các tham số được đưa vào.
Ví dụ: Tạo một file BAT đơn giản như sau:
A:\>COPY CON VANBAN.BAT
ECHO %0                              
MD %1                                   
CD %1                                        
COPY C:\%2.TXT                  
DIR A:                                     
Gõ phím F6 (hoặc Ctrl + Z)    
1 file(s) copied
Khi dùng lệnh:
A:\>VANBAN  TEXT  BAOCAO         
Sau khi Enter, tên VANBAN sẽ thay vào %0, tên TEXT sẽ thay vào vị trí %1 và BAOCAO sẽ vào vị trí %2. Do vậy, máy sẽ hiểu cần thi hành tuần tự các công việc sau:
– Hiển thị câu: VANBAN
– Mở thư mục: MD TEXT
– Vào thư mục: CD TEXT
– Chép file BAOCAO.TXT từ ổ đĩa C
– Liệt kê tất cả các file trong đĩa A
Các câu lệnh chính dùng trong file BAT:
Trong file BAT cho phép sử dụng dấu @ (a sign), nếu đặt @ trước một lệnh thì lệnh đó không hiển thị ra màn hình mà chỉ thi hành lệnh.
Echo
Cú pháp:         ECHO [on/off]
Ghi chú:
– Lệnh Echo cho phép đưa ra (on) hay không đưa ra (off) màn hình câu lệnh.         – xuất hiện không cần để ý trạng thái của Echo là on/off
Call
Cú pháp:         CALL [drive:][path][argument]
Ghi chú:
– Lệnh Call cho phép ta gọi một file BAT khác chạy trong file BAT hiện tại.
là tên tập tin BAT khác mà ta muốn gọi.
– [argument] là lệnh sẽ thi hành tiếp theo sau khi file BAT được gọi.
Pause
Cú pháp:         PAUSE [comment]
Ghi chú:
– Lệnh Pause tạm thời dừng thi hành file BAT
– [comment] dòng chú thích hiển thị ra màn hình, không dài quá 123 ký tự.
– Các lệnh sau lệnh Pause sẽ tiếp tục khi ta gõ một nút bất kỳ trên bàn phím.
Rem
Cú pháp:         REM [comment]
Ghi chú:
– Lệnh REM(remark) ghi các nhắc nhở [comment ] dài không quá 123 ký tự.
– Các comment này sẽ xuất hiện trên màn hình nếu trước đó ta có ECHO ON và ngược lại, chúng sẽ không xuất hiện khi có ECHO OFF.
* If
Cú pháp 1:      IF [NOT] EXIST [drive:][path]
Ghi chú:
– Lệnh IF là lệnh điều kiện với ý nghĩa: NẾU … thì thi hành
– IF [NOT] là phủ định (not tùy chọn): NẾU KHÔNG … thì thi hành
Ví dụ:   Trong 1 file BAT ta có dòng:
COPY C:\DOS\*.COM  A:
IF EXIST A: EDIT.COM EXIT
DIR A:
Lệnh trên có nghĩa là copy ở C:\DOS tất cả các file .COM vào đĩa A.
Nếu đĩa A đã có file EDIT.COM thì thôi không thực hiện nữa (để khỏi mất thì giờ) và thoát ra (EXIT) thực hiện dòng tiếp là liệt kê các file ở đĩa A.
Cú pháp 2:      IF [NOT] String1 == String2
Ghi chú:  Nếu chuỗi ký tự String1 giống chuỗi ký tự String2 thì được thực hiện.
Ví dụ:   IF %1 == IN ECHO MO MAY IN RA !
Nghĩa là nếu chương trình chứa tham số %1 đúng là IN thì hiển thị (ECHO) dòng chữ MO MAY IN RA !. Ngược lại, nếu tham số %1 không là IN thì không thi hành lệnh ECHO theo sau.
Cú pháp 3:      IF [NOT] ERRORLEVEL #
Ghi chú:  Lệnh điều kiện này để báo mức độ lỗi. Tùy theo mức độ lỗi đã định mà thực hiện tương ứng.
Ví dụ: COPY C:\PRG\*.PAS A:
IF ERRORLEVEL 1 ECHO KHONG COPY DUOC
Nghĩa là copy tất cả các file .PAS ở C:\PRG qua A. Vì một lý do nào đó ta không copy được (không có đĩa A, hay điã A bị hư hay đĩa A đã đầy …) thì chương trình sẽ báo dòng chữ KHONG COPY DUOC.
For
Cú pháp:         FOR %% IN (Tập hợp) DO [Tham số Lệnh}
Ghi chú:
– Lệnh FOR thực hiện vòng lặp với từng file trong tập hợp file.
– Nghĩa là, (variable) sẽ lần lượt nhận các giá trị trong (Set) để thực hiện (comamnd) theo [Tham số Lệnh] (Command parameters).
Ví dụ:  FOR %%T  IN (C:\VANBAN\*.TXT)  DO  COPY %%T  A:\
Sao chép lần lượt tất cả các file .TXT trong C:\VANBAN vào A:\
Goto
Cú pháp:       GOTO :
Ghi chú:
– Lệnh GOTO là lệnh di chuyển tới dòng lệnh đứng sau (Label).
– Trước phải có dấu hai chấm (:), chiều dài có giá trị của chỉ có 8 ký tự mặc dầu ta có thể viết dài hơn tùy ý.
– Nếu không xác định được trong file BAT thì khi thi hành lệnh GOTO máy sẽ báo:
Label not found           (Nhãn không tìm thấy)
Ví dụ:               FORMAT A:/S
IF ERRORLEVEL 0 GOTO ECHO KHONG FORMAT A: DUOC
SHIFT
Cú pháp:         SHIFT
Ghi chú:
– Lệnh SHIFT dùng để thay đổi vị trí tham số có thể thay thế được trong .BAT
– File BAT có tối đa 10 biến có thể thay thế từ %0 đến %9, khi dùng SHIFT thì sẽ có một sự thay đổi biến như sau: %0 mất đi, %1 chép đè lên %0, và %2 chép đè lến %1, và %3 chép đè lên %2, …
– Lệnh SHIFT có thể dùng quá 10 tham số.
Ví dụ:   Ta có file mang tên SAPCHU.BAT  trong ổ A với nội dung sau:
ECHO OFF
ECHO %0  %1  %2  %3
SHIFT
ECHO %0  %1  %2  %3
SHIFT
ECHO %0  %1  %2  %3
SHIFT
Khi cho chạy thử với dòng lệnh:
A:\>SAPCHU   Toi thich an kem lam 
Kết quả hiện ra màn hình là:
A:\> ECHO OFF
SAPCHU  Toi thich an
Toi thich an kem
Thich an kem lam

  •  TẬP LỆNH CẤU HÌNH MÁY CONFIG.SYS

Tập tin CONFIG.SYS là file tạo cấu hình hệ thống, nó cho phép ta thay đổi các cấu hình chuẩn (default) của MS-DOS. Hầu hết các máy vi tính hiện nay đều có 2 tập tin đồng thời là AUTOEXEC.BAT và CONFIG.SYS. Hai file này chứa các thông tin liên quan đến cấu hình hệ thống và đặt tại thư mục gốc của đĩa khởi động máy.
Tập tin CONFIG.SYS có thể tạo bằng lệnh COPY CON CONFIG.SYS, hoặc các trình lập văn bản như EDIT.COM, WINWORD, …. Sau khi khởi động máy, DOS sẽ tìm CONFIG.SYS trong thư mục gốc đĩa khởi động hệ thống của nó. Nếu không tìm thấy CONFIG.SYS, DOS sẽ lập cấu hình của máy theo trị mặc nhiên.
Một số lệnh trong CONFIG.SYS
BREAK

Cú pháp:         BREAK = ON/OFF
Ghi chú:
Lệnh BREAK dùng để định chế độ kiểm tra bàn phím, BREAK = ON cho phép ta dùng tổ hợp phím Ctrl +C (hay Ctrl+Break) để ngưng việc thi hành lệnh, muốn tắt chế độ BREAK ta sử dụng lệnh BREAK = OFF.
BUFFERS
Cú pháp:         BUFFERS =
Ghi chú:
– Lệnh BUFFERS là lệnh cấp phát bộ nhớ đệm, nghĩa là định số sectors cho vùng nhớ đệm của hệ thống. Vùng nhớ đệm dùng để lưu trữ nội dung của file mà chương trình hiện hành đang dùng.
là giá trị vùng nhớ đệm có thể có giá trị từ 2 đến 255. Khi cấu trúc thư mục trở nên phức tạp, thì nên tăng cường số buffers để tạo hiệu quả thêm cho DOS. Tuy nhiên, quá nhiều buffers thì vùng nhớ trống còn lại của chương trình và dữ liệu sẽ ít đi.
– Thông thường, giá trị vùng nhớ đệm được khai báo là buffers = 30.
COUNTRY
Cú pháp:         COUNTRY = xxx[,[yyy],[drive:]]
Ghi chú:
– Lệnh COUNTRY chỉ định các thông tin cho MD-DOS về ngày, giờ, tiền tệ,… phù hợp với mỗi quốc gia. Lệnh này cũng chỉ ra bộ mã ký tự của nước đó.
– xxx là mã điện thoại quốc tế của một nước : 001 của Mỹ, 084 của Việt nam, …
– yyy là trang mã (code page) của một nước.
– filename là tập tin thông tin quốc gia, nếu không có DOS sẽ sử dụng COUNTRY.SYS của hệ thống.
FilES
Cú pháp:         FILES =
Ghi chú:
– Lệnh Files dùng để xác định số tập tin mà MS-DOS có thể mở ra đồng thời để xử lý. Trường hợp, số files mở ra nhiều hơn số đã định thì gặp dòng thông báo:
Too many files open                           (Mở quá nhiều tập tin)
– Số file có thể từ 8 đến 255. Giá trị mặc nhiên là 8, thường thì Files = 30
DEVICE
Cú pháp:         DEVICE = [drive:][path][argument]
Ghi chú:
– Lệnh DEVICE dùng để cài module điều khiển các thiết bị cho MS-DOS
là tên tập tin dùng để điều khiển thiết bị, thí dụ như:
ANSI.SYS                    DISPLAY.SYS             DRIVER.SYS
CONFIG.SYS              PRINTER.SYS                        RAMDRIVE.SYS (VDISK.SYS) …
– [argument] chỉ ra các thông tin của dòng lệnh mà chương trình điều khiển thiết bị yêu cầu.
Ví dụ: Lệnh cho phép xác định một phần bộ nhớ của máy tính như là một ổ cứng, vùng bộ nhớ này gọi là RAM disk và làm việc như một ổ đĩa aỏ (virtual disk) :
DEVICE = C:\DOS\RAMDRIVE.SYS  100/E
câu lệnh trên sẽ tạo ra một đĩa ảo có kích thước 100 KB nằm trong vùng nhớ mở rộng (/E : Expanded Memory). Tên đĩa ảo sẽ là tên alphabetic tiếp theo tên của đĩa cứng. Ví dụ đĩa cứng chia thành 2 ổ có tên là C: và D: thì đĩa ảo sẽ có tên là E:
shell
Cú pháp:         SHELL =[drive:][path]
Ghi chú:
– Lệnh SHELL cho phép sử dụng bộ xử lý lệnh cấp cao (top-level command processor) thay thế lệnh COMMAND.COM.
là tên của chương trình xử lý lệnh

0
Giỏ hàng
Chat ngay
Hotline02516544809
Chat ngay