Hoàng Web

Thiết Kế Website WordPress

  • Kho giao diện
  • Dịch Vụ
    • Thiết kế web giá rẻ
    • Thiết kế website WordPress
    • Hosting Miễn Phí 100GB
    • Tích hợp thanh toán MoMo, ViettelPay, Vietcombank, MB..
    • Tối ưu Google PageSpeed
    • Sửa lỗi nâng cấp website
    • Viết plugin WordPress
    • Code Tool theo yêu cầu
  • Bảng giá
  • Quy trình làm việc
  • Giới thiệu
  • Liên Lạc
Trang chủ » Công cụ » Hướng dẫn sử dụng lệnh BAT Command Line cho Windows

Hướng dẫn sử dụng lệnh BAT Command Line cho Windows

Thứ Ba, 11/11/2014 by Hoàng Quách

Nội dung

  • 1 Tạo biến
  • 2 Khai báo thư viện – thiết lập biến môi trường bằng lệnh
  • 3 Gửi email
  • 4 Sử lý chuỗi
  • 5 Câu lệnh
    • 5.1 Xuất nội dung ra file
    • 5.2 Prompt
    • 5.3 Làm việc với file & folder
  • shares
  • Facebook
  • Facebook Messenger
  • Gmail
  • Viber
  • Skype

CMD là phần mềm giao diện lệnh sử dụng cho hệ điều hành Window, một tiện ích của Microsoft, mọi hệ điều hành đằng sau giao diện người dùng là sử lý bởi command line. Bài này mình sẽ trình bầy sơ qua các kiến thức cơ bản về lập trình và cách sử dụng tập lệnh trong cmd. Căn cứ vào đó bạn có cái nhìn tổng quan.

Chú giải – comment

::chu giai

REM chu giai

Dừng màn hình – pause screen
Một số trương trình BAT thoát cửa sổ sau khi thực thi hoàn tất, bạn có thể cho dừng màn hình để theo dõi hoặc sử dụng thêm, bằng cách chèn thêm lệnh:

pause		//có dòng "Press any key to continue . . ."
pause >nul	//ko có dòng "Press any key to continue . . ."

– Thoát cmd exit

In chuỗi

//in chuỗi
@echo hello world!

Mặc định các lệnh command line bạn viết trong file .bat sẽ hiện thị ra console, nhưng nếu muốn không cho show từng lệnh ra và chỉ hiển thị kết quả thì thêm dòng này vào đầu file.

//tắt echo
@echo off

Ngày tháng
In ngày hiện tại.

//in ngày

@echo |DATE

Kết quả, ví dụ:

The current date is: 11/11/2014 

In thời gian hiện tại.

//print time
@echo |TIME

Result:

The current time is: 10:34:57,27

Mở file/FILE
Sử dụng lệnh start nếu bạn muốn mở file có trong máy tính thông qua cmd. VD:

//mở 1 file
start 1.txt
start c:/1.txt

Hoặc mở địa chỉ trang web trên trình duyệt

//mở 1 trang web
start http://www.hoangweb.com

Tạo biến

Khai báo biến.

//khai báo biến

set FLEX_SDK=D:\FLASH\setups\flex_sdk_4.6_2

để sử dụng biến, bạn đặt tên biến bởi cặp ký tự % như thế này: %FLEX_SDK% và in giá trị biến ra console.

@echo %FLEX_SDK%

Cách biến đặc biệt
– Thư mục C:/Users/Admin
%USERPROFILE%

– Trả về tên account user hiện tại.
%USERNAME%

Mảng
– Gọi lệnh cmd khác, lấy kết quả là nảng đưa vào biến. Chú ý: sử dụng ngoặc đơn: ‘ không dùng ngoặc kép ” sẽ sai. VD:

set files=('dir /b c\*.class')

Liệt kê mảng sử dụng vòng lặp for do.

@echo off
for /f %%f in ('dir /b *.jpg') do (
	echo %%f
)

Ví dụ trên liệt kê tất cả các file .jpg ở thư mục chứa script này, nếu có.
for do bat script
Bạn có thể gán mảng vào biến, như ví dụ ở trên chúng ta thay thế với biến files.

for /f %%f in %files% do (
	echo %%f
)

Lưu ý: Để ý tạo biến mới trong lệnh for không dùng ‘set’ thay vào đó bạn viết 2 ký tự %% đằng trước tên biến và cách truy cập biến cũng giống như vậy. Không được dùng cách lấy biến thông thường: %f%

Tạo mảng mới.

set  arrayline[0]=############
set  arrayline[1]=#..........#
set  arrayline[2]=#..........#
set  arrayline[3]=#..........#
set  arrayline[4]=#..........#
set  arrayline[5]=#..........#
set  arrayline[6]=#..........#
set  arrayline[7]=#..........#
set  arrayline[8]=#..........#
set  arrayline[9]=#..........#
set arrayline[10]=#..........#
set arrayline[11]=#..........#
set arrayline[12]=############

Duyệt các phần tử có trong mảng với lệnh for-do.

for %%x in %arrayline% do (
	
	//gía trị pần tử
	%%x
	//sai
	%x%
)

Ví dụ:

@echo off
setlocal enabledelayedexpansion

set  arrayline[0]=############
set  arrayline[1]=#..........#
set arrayline[10]=#..........#
set arrayline[11]=#..........#
set arrayline[12]=############

::read it using a FOR /L statement
for %%x in %arrayline% do (
	
	//gía trị pần tử
	%%x
	//sai
	%x%
)
pause

Khai báo thư viện – thiết lập biến môi trường bằng lệnh

Xem hướng dẫn thêm thư viện command line vào môi trường CMD của windows thông qua Control Panel, ngoài ra bạn còn có thể khai báo thêm đường dẫn tới file chạy executable sử dụng trong công cụ command line CMD bằng cách cài đặt lệnh setx.
Ví dụ dưới đây mình khai báo đường dẫn java sdk vào biến môi trường JAVA_HOME.

//Simple example how to set JAVA_HOME with setx.exe in command line
setx JAVA_HOME "C:\Program Files (x86)\Java\jdk1.7.0_04"

Nếu các thư viện bạn muốn chía sẻ cho mọi tài khoản người dùng trong windows, với tham số “-m”.

//If you what so set variable for all users you have to use option "-m" here is example:
setx -m JAVA_HOME "C:\Program Files (x86)\Java\jdk1.7.0_04"

Gửi email

Sử dụng lệnh start bạn có thể mở trang gửi email của google hoặc mở ngay ứng dụng Microsoft Outlook để gửi mail với nội dung bạn viết sẵn.

start mailto:[email protected]

Bạn cũng có thể điền email người gửi, chủ đề và nội dung gửi đi bởi tham số truyền vào cú pháp ‘mailto’, ví dụ:

@echo off
:Mail
FOR /F "TOKENS=2*" %%A IN ('DATE/T') DO SET DATE=%%A
FOR /F %%A IN ('TIME/T') DO SET TIME=%%A
START mailto:[email protected]?subject=Thiet%%20ke%%20web%%20Hoangweb.com^&body=At%%20%DATE%,%%20%TIME%,%%20user%%20%USERNAME%%%20encountered%%20the%%20following%%20drive%%20mapping%%20error(s)%%20on%%20%COMPUTERNAME%:%%0D%%0A%BODY%
GOTO :EOF

Kết quả máy tính của mình đã mở Outlook express sau đó với nội dung chỉ định sẵn, người dùng chỉ việc nhấn nút send để gửi đến email người nhận:
mailto-example

Sử lý chuỗi

Tìm và thay thế chuỗi. Ví dụ sau thay thế chuỗi ‘chair’ thành từ ‘table’ lưu bởi biến word.

@echo off
setlocal ENABLEDELAYEDEXPANSION
set word=table
set str="jump over the chair"
set str=%str:chair= !word!%
echo %str%

Cách khác:

set word=table
set str="jump over the chair"
call set str=%%str:chair=%word%%%
echo %str%

Bạn có thể sử dụng biến tìm chuỗi chứa mọi ký tự bao gồm dấu cách, thay nội dung chuỗi bằng tên biến vd: %var1%.

@echo off
set find=chair 123
set word=table
set str="jump over the chair 123"
call set str=%%str:%find%=%word%%%
echo %str%

Câu lệnh

– Phát biểu điều kiện.

//điều kiện

if not true <command>

– Nhảy đến nhãn và chạy tiếp lệnh

//nhảy đến nhãn
goto nhan1
:nhan1
echo heelo !
Xuất nội dung ra file
@echo |DATE >hoang.txt

Thay vì in chuỗi ra console, kết quả của lệnh sẽ ghi vào file bạn chỉ định, ví dụ trên lưu thông tin ngày tháng vào file hoang.txt trong thư mục hiện tại cmd đang làm việc.

Ví dụ khác, mình xuất nội dung của bảng wp_users trong csdl mysql sử dụng XAMPP.
Trước tiên đảm bảo dịch vụ mysql đã bật bằng cách mở XAMPP Control Panel và nhấn vào start tại dòng module MySQL.

//ie: lấy nội dung table mysql vào file
c:/xampp/mysql/bin/mysql.exe -u root -Nrs -e"use test;SELECT * from wp_users;" >out.txt
Prompt

Hiển thị nhấu nhắc kèm thông báo nhập dữ liệu.

set /p var1="Insert your name?"
@echo %var1%

Lấy nội dung nhập từ người dùng và lưu vào biến ‘var1’. Cuối cùng in chuỗi này ra màn hình.
Hoặc viết như thế này cũng có tác dụng tương đương:

set /p "var1=Insert your name?"
Làm việc với file & folder

Xóa file: del file-name

Xóa folder.

//del folder
rmdir directoryname
rmdir /S directoryname 		#use /S to delete a non empty directory
rmdir /Q /S directoryname		#delete  without being asked for confirmation
rmdir /Q /S "folder 1" #You can specify the directory name in quotes.

Kiểm tra sự tồn tại của folder/file? chúng ta sử dụng cú pháp exist. Ví dụ kiểm tra FLEX_SDK có cài đặt trong máy tính. Nếu lệnh sau trả về true nghĩa là trong máy tính của bạn có.

exist "%FLEX_SDK%\bin"

Sử dụng trong câu lệnh điều kiện.

if exist "2.jpg" (
	@echo "exists 2.jpg"
)
if exist "c:\folder1" (
	echo "found your folder."
)

Nếu bạn không nhớ tên file, có thể sử dụng ký tự wildcat.

::chỉ định nhiều file cùng một định dạng
if exist "*.jpg" (
	@echo "found any images file like .jpg"
)

– Liệt kê tất cả các file có trong thư mục.

dir /b c:\*.class

Giải thích:
Tham số ‘/b’: trả về nguyên tên file & mở rộng (VD: 1.png), và bỏ qua các thông tin khác của file như ngày tạo, kích thước…
Ví dụ sau duyệt các file:

::list files sử dụng for, với tham số /f
for /f %%f in ('dir /b c:\*.class') do (
	//truy cập phần tử
	echo %%f
	
	//lấy tên file không đuôi mở rộng (extension)
	%%~nf
)

Nếu bạn thích bài viết này, hãy ủng hộ chúng tôi bằng cách đăng ký nhận bài viết mới ở bên dưới và đừng quên chia sẻ kiến thức này với bạn bè của bạn nhé. Bạn cũng có thể theo dõi blog này trên Twitter và Facebook

  • shares
  • Facebook
  • Facebook Messenger
  • Gmail
  • Viber
  • Skype

Chuyên mục: Công cụ Tìm kiếm: BAT, BAT Script, cmd, command line

Comments

  1. Hoàng says

    Chủ Nhật, 04/03/2018 at 1:20 sáng

    Bạn cho mình hỏi chút nhé. mk dùng phần mềm lockdir để khóa một thư mục. mở và tắt phần mềm thì ok rồi. bây giờ mk cần điền mật khẩu vào 2 ô trống trên phần mềm rồi ấn enter. có thể thực hiện tất cả các thao tác này bằng lệnh trên cmd không bạn?
    Cảm ơn bạn nhiều

    • Hoàng Quách says

      Chủ Nhật, 04/03/2018 at 4:44 sáng

      Được bạn nhé

      • Hoàng says

        Thứ Hai, 05/03/2018 at 1:26 chiều

        Bạn chỉ mk đc không?!

        Bạn có thể nt cho mk qua fb https://www.facebook.com/KaitoKid9x
        hoặc gmail [email protected]

        Thanks bạn!

  2. Hưng Nguyễn says

    Thứ Sáu, 04/05/2018 at 6:30 chiều

    Mình hỏi một chút, dấu cách trong lệnh batch file được biểu diễn thế nào?
    Mình sử dụng lệnh ở dưới để start ứng dụng mà máy tính chỉ đọc đến Program, máy tính không đọc được tất cả thư mục Program File có dấu cách.
    Start C:\Program Files\Internet Explorer\iexplore.exe

    • Chung says

      Chủ Nhật, 20/05/2018 at 2:39 chiều

      Start C:\”Program Files”\”Internet Explorer”\iexplore.exe
      Để trong nháy kép bàn à

  3. Phan Lam says

    Thứ Ba, 22/10/2019 at 4:57 chiều

    Cho mình hỏi bên mình dùng hệ thống có được viết từ file.bat. Nhưng khi dùng máy có Win XP thì ok, nhưng khi dùng trên Win 10 hay Win 7 thì không chạy được . Có cách nào xử lý không bạn.

    • Hoàng Quách says

      Thứ Tư, 23/10/2019 at 9:20 sáng

      bạn thử chạy trên cmd hay mở trực tiếp .bat? chat với mình trên trang web này nhé.

  4. Khánh says

    Thứ Bảy, 21/03/2020 at 12:12 chiều

    Nhà em có ông bác nuôi yến. Ad cho em hỏi có cách nào mã hóa file đó trong usb để không bị sao chép coppy ra ngoài và khi cắm vào dàn máy thì vẫn phát ra loa được không ạ. Em cảm ơn nhiều.

Tôi giúp gì cho bạn?

HOÀNG WEB

Địa chỉ: Tây Sơn, Phường Quang Trung, Quận Đống Đa, Hà Nội

Hotline: 0987 342 124 – 0868 292 303 (8h:00 – 21h:00)

Email: [email protected]

Website: www.hoangweb.com

KẾT NỐI VỚI TÔI

  • Facebook
  • GitHub
  • YouTube

SẢN PHẨM

  • Plugin Thanh Toán Quét Mã QR Code Tự Động
  • WP2Speed – Tối ưu Google Speed
  • 23WebHost – Hosting Miễn Phí 100GB

LIÊN KẾT

  • Có nên thuê thiết kế website giá rẻ?
  • Hướng dẫn thanh toán
  • Chính sách hoàn tiền
  • Trung tâm hỗ trợ

Copyright © 2023 | All rights reserved | HOANG WEB
Mọi hình thức sao chép nội dung trên website này mà chưa được sự đồng ý đều là trái phép.