Lệnh shutdown
shuwdown từ xa : shuwdown -s -m \\client (dung quyen admin )
1. Lệnh shutdown
Nghe tên các bạn đã thấy
nhiệm vụ của lệnh này rồi. Đúng vậy, trong Windows nó được dùng để thực
hiện các công việc tắt máy, khởi động lại, đăng xuất. Lệnh này thực chất
là 1 tệp exe nằm trong thư mục C:\WINDOWS\System32.
Để tìm hiểu
cú pháp của lệnh này, bạn mở Command Promt (vào Start\Run và gõ vào
lệnh cmd), rồi gõ shutdown /? để liệt kê tất cả các tham số của lệnh và
cách sử dụng. Bạn cũng có thể mở Help của Windows để truy tìm những
thông tin liên quan đến lệnh này.
Cú pháp của nó như sau:
shutdown [-i | -l | -s | -r | -a] [-f] [-m computername] [-t xx] [-c "comment"] [-d up:xx:yy]
Có
khá nhiều tham số cho lệnh, nhưng ở đây mình chỉ nhấn mạnh 1 vài điểm
quan trọng sẽ được dùng trong chương trình của chúng ta:
-s: Tắt máy (viết tắt của shutdown)
-r: Khởi động lại (viết tắt của restart)
-l: Đăng xuất (viết tắt của logoff)
-t xx: Thời gian chờ, trong đó xx là thời gian phải đợi khi máy tắt (hoặc khởi động lại, đăng xuất) tính bằng giây
-c "comment": Thông báo hiện ra
Ví dụ như khi ta muốn hẹn tắt máy sau 30 giây, thì câu lệnh sẽ như sau:
shutdown -s -t 30
Còn muốn khởi động lại ngay lập tức thì:
shutdown -r -t 0
Chúng
ta đã đi qua được nửa chặng đường rồi đó bạn. Quá đơn giản phải không?
Bây giờ sẽ là những phần râu ria cho chương trình của chúng ta.
2. Những lệnh khác
Trước
tiên phải nói đến lệnh echo, lệnh này có chức năng ẩn/hiện dòng lệnh
của chúng ta, và giúp ta hiện ra một thông báo nào đó. Chẳng ai muốn khi
chương trình chạy lại hiện ra dòng chữ shutdown -s -t 0 cả phải không?
Người dùng chỉ muốn thấy kết quả của lệnh đó thôi, chứ quan tâm đến câu
lệnh được gọi là gì đâu.
Muốn ẩn các câu lệnh, ta dùng lệnh: @echo off
Còn muốn hiện 1 thông báo nào đó ra màn hình, ta dùng lệnh: echo thông_báo
Bây
giờ ta sẽ tìm hiểu lệnh dùng để nhập dữ liệu từ bàn phím vào. Đó chính
là lệnh set. Cũng tương tự như ở trên, để tìm hiểu chi tiết về nó, bạn
hãy mở Command Prompt và gõ set /? hoặc mở Help ra để tra nhé. Lệnh này
có 2 chức năng chính là nhập dữ liệu và tính giá trị biểu thức. Ở đây,
ta chỉ cần chức năng thứ 2, để nhận biết người dùng đã lựa chọn gì.
Giả sử màn hình lựa chọn của chúng ta như sau:
1. Tat may
2. Khoi dong lai
3. Dang xuat
Khi đó để nhận biết sự lựa chọn của người dùng (1, 2 hoặc 3) ta sẽ dùng lệnh sau:
set /p n=Ban hay nhap vao 1 hanh dong:
Lệnh
này sẽ hiện ra dòng Ban hay nhap vao 1 hanh dong: và lấy giá trị nhập
vào gán cho biến n. Bây giờ ta chỉ việc xử lí biến n mà thôi.
Sau
khi biết được sự lựa chọn rồi, ta cần biết thêm thời gian chờ mà ta
muốn là bao nhiêu. Để làm được điều đó, ta lại sử dụng lệnh set trên để
nhập dữ liệu vào:
set /p sec=Thoi gian cho:
Khi đó thời gian chờ sẽ được gán cho biến sec. Cũng tương tự như thế, ta sẽ yêu cầu nhập vào lời thông báo bằng lệnh sau đây:
set /p msg=Thong bao:
Vậy là xong phần nhập dữ liệu.
Để
xét các trường hợp mà n có thể xảy ra, ta cần đến câu lệnh lựa chọn if.
Lệnh này cũng giống như trong các ngôn ngữ lập trình khác, có cú pháp
khá đơn giản:
if điều_kiện lệnh
hoặc là
if điều_kiện lệnhj1 else lệnh 2
Đối
với lệnh tắt máy hay khởi động lại thì cú pháp lệnh giống nhau trừ tham
số -s và -r thôi. Riêng lệnh đăng xuất thì lại khác, vì đăng xuất sẽ
không có thời gian chờ, và do đó sẽ không có tham số -t (tất nhiên sẽ
không có -c luôn!). Cho nên khi dùng lệnh if để lựa chọn, ta cần chú ý
điều này. Đoạn lệnh if sẽ như sau:
if %n% == 3 (tức chọn đăng xuất) goto :log (nơi xử lí lệnh đăng xuất)
Nhập thời gian chờ và thông điệp đối với lệnh tắt máy và khởi động lại
if %n% == 1 (tắt máy) (shutdown -s -t %sec% -c "%msg%") else (shutdown -r -t %sec% -c "%msg%")
goto :end (đến cuối chương trình để thoát)
:log (phần lệnh xử lí việc đăng xuất)
shutdown -l
:end
Trong
đoạn lệnh trên có 2 nơi cần chú ý: một chỗ là biến n, sec được đặt giữa
2 dấu %. Đây chính là cách tham chiếu đến biến trong 1 tệp lệnh batch.
Đó là quy ước và chúng ta phải nhớ. Hai là lệnh nhảy goto, lệnh này sẽ
đưa chúng ta đến vị trí được đặt bởi nhãn (phía sau dấu 2 chấm). Chỉ đơn
giản vậy thôi, phải không bạn?
3. Chương trình hoàn thiện
Chúng ta đã đi qua các bước để tạo thành chương trình rồi, bây giờ chỉ cần lắp ráp lại các phần thôi.
Đầu tiên là bảng lựa chọn và yêu cầu người dùng nhập vào lựa chọn của mình:
@echo off
echo Chuong trinh tat may tu dong
echo 1. Tat may
echo 2. Khoi dong lai
echo 3. Dang xuat
set /p n=Hay lua chon mot trong cac hanh dong tren:
Sau đó là đến phần xử lí lựa chọn của người dùng:
if %n%==3 goto :log
set /p sec=Nhap thoi gian cho:
set /p msg=Nhap thong bao:
if %n%==1 (shutdown -s -t %sec% -c "%msg%") else (shutdown -r -t %sec% -c "%msg%")
goto :end
:log
shutdown -l
:end
Và chương trình cuối cùng của chúng ta sẽ như sau:
@echo off
echo Chuong trinh tat may tu dong
echo 1. Tat may
echo 2. Khoi dong lai
echo 3. Dang xuat
set /p n=Hay lua chon mot trong cac hanh dong tren:
if %n%==3 goto :log
set /p sec=Nhap thoi gian cho:
set /p msg=Nhap loi chao tam biet:
if %n%==1 (shutdown -s -t %sec% -c "%msg%") else (shutdown -r -t %sec% -c "%msg%")
goto :end
:log
shutdown -l
Nguồn : http://diendandx.hforum.biz/t50-lenh-shutdown
Thứ Hai, 19 tháng 5, 2014
Đăng ký:
Đăng Nhận xét (Atom)
0 nhận xét:
Đăng nhận xét