5 câu lệnh IF để sử dụng cho tập lệnh hàng loạt của Windows thông minh hơn
Nếu bạn thực hiện nhiều công việc trong các tệp hàng loạt của Windows, câu lệnh IF cung cấp một cách rất hiệu quả để thêm tính linh hoạt cho các tập lệnh của bạn.
Trong bài viết này, bạn sẽ tìm hiểu về năm loại câu lệnh IF chính mà bạn có thể sử dụng trong tệp loạt Windows, cách thức đúng cú pháp và ví dụ thực tế cho từng loại.
Nếu bạn đã sẵn sàng để bắt đầu viết kịch bản, hãy bắt đầu.
Mục Lục
1. So sánh các giá trị
Một trong những điều cơ bản bạn thường cần làm trong tập lệnh lô là so sánh hai giá trị và thực hiện theo một quy trình hành động khác tùy thuộc vào sự so sánh.
Ví dụ: giả sử bạn muốn viết một tập lệnh hàng loạt để kiểm tra kích thước ổ cứng máy tính của bạn hàng ngày. Nếu dung lượng dưới 3GB, bạn muốn nhận được báo cáo qua email cho biết “Dung lượng ổ cứng quá thấp”.
Để tạo một tập lệnh so sánh dung lượng ổ cứng trống hiện tại với giới hạn của bạn, bạn sẽ phải tạo tập lệnh hàng loạt sau và lưu nó dưới dạng tệp .bat.
@echo off
set DriveLimit=300000000
for /f "usebackq delims== tokens=2" %%x in (`wmic logicaldisk where "DeviceID='C:'" get FreeSpace /format:value`) do set FreeSpace=%%x
Echo FreeSpace="%FreeSpace%"
Echo Limit="%DriveLimit%"
If %FreeSpace% GTR %DriveLimit% (
Echo There is enough free space.
) else (
Echo Not enough free space.
)
Trong kịch bản, WMIC là thành phần Windows Management Instrumentation (WMI) của Windows đi kèm với một loạt các lệnh mà bạn có thể sử dụng để lấy thông tin từ PC của mình.
Đây là cách lệnh “wmic” trong tập lệnh này gọi đĩa logic không gian và đặt nó vào Không gian trông Biến đổi.
Bây giờ bạn chỉ có thể thay thế dòng Echo Không đủ dung lượng trống với một lệnh để gửi cho bạn một cảnh báo qua email. Đặt tập lệnh để chạy hàng ngày.
2. So sánh chuỗi
Một so sánh IF có giá trị khác mà bạn có thể thực hiện trong công việc hàng loạt là so sánh các chuỗi.
Trong ví dụ sau, bạn sẽ thấy cách kiểm tra phiên bản Windows của mình bằng công việc hàng loạt. Sau đó, bạn có thể so sánh điều này với phiên bản Windows mong đợi của bạn.
Một số mục đích sử dụng của tập lệnh này sẽ dành cho việc kiểm tra CNTT khi bạn cần nhanh chóng chạy một tập lệnh và đảm bảo rằng hệ điều hành hiện tại là hệ điều hành mới nhất hoặc liệu nó có cần nâng cấp hay không.
Đây là những gì tập lệnh này trông giống như:
@echo off
for /f "tokens=4-5 delims=. " %%i in ('ver') do set VERSION=%%i.%%j
if "%version%" == "6.0" echo Windows Vista.
if "%version%" == "6.1" echo Windows 7
if "%version%" == "6.2" echo Windows 8
if "%version%" == "6.3" echo Windows 8.1
if "%version%" == "10.0" echo Windows 10.
Đây là kết quả đầu ra của tập lệnh này trông như thế nào:
Khả năng so sánh các chuỗi trong một loạt mở ra một danh sách toàn bộ các khả năng. Nếu bạn khám phá tất cả thông tin bạn có thể có được từ lệnh WMIC, bạn sẽ thấy chỉ có bao nhiêu thống kê về máy tính của mình mà bạn có thể theo dõi.
Hơn nữa, bạn thậm chí có thể sử dụng các công việc hàng loạt đã lên lịch để nhận thông báo về những điều này.
3. Kiểm tra xem tệp có tồn tại không
Một tình huống hữu ích khác trong đó câu lệnh IF trong tệp lô là để kiểm tra sự tồn tại của tệp dữ liệu.
Rất nhiều khi, công việc hàng loạt chỉ là một công cụ giám sát mà bạn có thể lên lịch để kiểm tra các tệp dữ liệu mới đến trong một thư mục cụ thể. Sau đó, bạn có thể sao chép tệp đó sang một vị trí khác hoặc bắt đầu một số tập lệnh Windows xử lý tệp đó thành đầu ra Excel.
Việc sử dụng một tệp hàng loạt để kiểm tra xem tệp có tồn tại trong một thư mục hay không rất nhanh chóng và dễ dàng. Đây là những gì tập lệnh đó trông giống như:
@echo off
if exist c:tempdatafile.txt (
%WINDIR%SysWOW64cmd.exe
cscript LoadToExcel.vbs
) else (
rem file doesn't exist
)
So sánh IF EXISTS hữu ích cho rất nhiều thứ.
Ví dụ: nếu bạn có một hệ thống hoặc ứng dụng đang chạy tạo nhật ký lỗi mới trong một thư mục cụ thể khi có sự cố, bạn có thể chạy một công việc hàng loạt thường xuyên. Bằng cách này, bạn có thể dễ dàng theo dõi xem nhật ký lỗi mới có được tạo hay không để có thể gửi cảnh báo.
4. Kiểm tra nếu một lệnh không thành công
Một khía cạnh của kịch bản tệp hàng loạt mà quá ít dân IT hoặc lập trình viên sử dụng là kiểm tra lỗi.
Có rất nhiều công việc hàng loạt đang thực hiện các nhiệm vụ CNTT quan trọng như sao lưu các tệp quan trọng hoặc chạy các hoạt động sao chép tệp. Khi các công việc hàng loạt này không thành công, hệ thống bị lỗi và mọi người thường nhận thấy.
Thông minh hơn nhiều khi nhận được cảnh báo khi công việc hàng loạt của bạn không thực hiện được lệnh trước khi mọi người bắt đầu nhận thấy. Bằng cách này, bạn có thể chủ động khắc phục sự cố.
Bạn có thể làm điều này bằng cách sử dụng biến% errorlevel% mà hầu hết các ứng dụng và lệnh trả về sau khi chúng được chạy. Tất cả những gì bạn phải làm là tuân theo lệnh của mình với IF% ERRORLEVEL% yêu cầu.
@echo off
xcopy C:
omefolder E:backupfolder
IF %ERRORLEVEL% NEQ 0 <blat command to send email>
Nếu ứng dụng hoặc lệnh trả về số 0, tất cả đều ổn. Nếu không, thì bạn cần phải gửi cho mình một email.
Tuy nhiên, bạn không cần phải sử dụng đường dẫn email. Bạn luôn có thể viết nhật ký lỗi mà bạn có thể kiểm tra mỗi sáng hoặc khởi chạy ứng dụng hoặc lệnh thứ hai cố gắng sao chép bằng lệnh thay thế.
Hơn nữa, nếu bạn muốn sử dụng câu lệnh IF để kiểm tra các mã lỗi cụ thể, Windows cung cấp một danh sách khá phong phú các mã lỗi hệ thống.
5. Kiểm tra các tham số bị thiếu
Câu lệnh IF hữu ích cuối cùng không dành cho một lệnh cụ thể mà thay vào đó để kiểm tra xem tập lệnh có nhận được các tham số đầu vào thích hợp hay không.
Ví dụ: giả sử bạn đã viết một tập lệnh thực hiện lệnh xcopy từ một thư mục đầu vào đến một thư mục mạng chung được sử dụng bởi một nhóm. Người dùng chỉ cần theo dõi tên tập lệnh của bạn với các tham số xác định đường dẫn tệp cá nhân của họ.
Bạn không thể thực thi đúng tập lệnh của mình mà không có đường dẫn được chỉ định, vì vậy bạn có thể muốn đặt câu lệnh IF ở đầu tập lệnh của mình để đảm bảo cả hai tham số đều được nhập.
@echo off
IF [%1]==[] (
GOTO sub_message
) ELSE (
xcopy %1 E:backupfolder
)
GOTO eof
:sub_message
echo You forgot to specify your path.
:eof
Nếu bạn chưa bao giờ sử dụng các tham số với tập lệnh lô trước đây, thì biểu tượng phần trăm theo sau là một số đại diện cho biến tham số. % 1 là tham số đầu tiên,% 2 là tham số thứ hai, v.v.
Nói chung, câu lệnh IF quá tiện dụng và bạn không cần phải viết quá nhiều mã để thực sự sử dụng chúng. Tất nhiên, nếu bạn muốn nâng nó lên một tầm cao, bạn có thể xem xét VBA với hướng dẫn của chúng tôi về cách tạo ứng dụng VBA đầu tiên của bạn.
Công việc hàng loạt có thể trở nên mạnh mẽ
Nhiều người bắt đầu sử dụng công việc hàng loạt cho các tác vụ đơn giản cần được thực hiện tuần tự. Rất may, với câu lệnh IF, bạn có thể thêm nhiều logic hơn vào các tập lệnh của mình.
Ngoài ra, bạn có thể thường xuyên sử dụng các ngôn ngữ lập trình nâng cao hơn và sử dụng PowerShell để hoàn thành nhiều tác vụ giống như công việc hàng loạt mà bạn hiện đang sử dụng.
Đọc tiếp
Thông tin về các Tác giả