Đôi khi, việc kiểm tra một tệp hàng loạt rất hữu ích nếu nó được khởi động từ dấu nhắc lệnh nâng cao hoặc với tư cách là quản trị viên. Tôi muốn chia sẻ với bạn một thủ thuật mà tôi đang sử dụng để làm điều này. Ý tưởng chính của thủ thuật của tôi là dựa trên giá trị của biến môi trường đặc biệt% errorlevel% lưu mã thoát cho hầu hết các ứng dụng và lệnh trên bảng điều khiển. Hãy xem điều này trong hành động.
Quảng cáo
Khi một số ứng dụng bảng điều khiển hoàn thành công việc của nó đúng cách, biến% errrorlevel% sẽ lưu trữ 0 dưới dạng giá trị của nó.
Mở một phiên bản nhắc lệnh mới và chạy lệnh 'dir'. Sau đó, in giá trị% errorlevel% bằng lệnh 'echo':
dir echo% errorlevel%
Nó sẽ tạo ra 0 làm đầu ra.
Bây giờ, chúng ta hãy thử thực hiện một lệnh yêu cầu độ cao, từ một cửa sổ nhắc lệnh thông thường không nâng cao. Ví dụ, hãy thử mở tập tin lệnh yêu cầu quyền quản trị.
Nếu bạn in giá trị% errorlevel%, nó sẽ không phải là 0 vì lệnh openfiles sẽ không hiển thị các tệp đã mở mà không có quyền quản trị viên.
Tuy nhiên, nếu bạn chạy nó từ dấu nhắc lệnh nâng cao ( đây là cách mở lời nhắc cmd quản trị ), nó sẽ hiển thị cho bạn các tệp đã mở và sẽ trả về 0, như mong đợi.
Sử dụng tính năng này, có thể thực hiện kiểm tra đơn giản trong tệp loạt:
@echo off openfiles> NUL 2> & 1 if NOT% ERRORLEVEL% EQU 0 goto NotAdmin echo Xin chào từ dấu nhắc lệnh nâng cao goto Kết thúc: NotAdmin echo Dấu nhắc lệnh này KHÔNG ĐƯỢC THANG MÁY: Kết thúc
Lưu ý rằng tôi sử dụng chuyển hướng đầu ra để ngăn chặn bất kỳ đầu ra nào từ lệnh openfiles. Trong phần '> NUL 2> & 1', đầu ra mặc định của lệnh được chuyển hướng đến hư không (NUL) và đầu ra lỗi được chuyển hướng đến đầu ra chuẩn, tức là cũng thành NUL.
Thay vì lệnh openfiles, bạn có thể sử dụng bất kỳ lệnh nào yêu cầu độ cao, ví dụ: phiên net chỉ huy.
Đó là nó.