Ví dụ về tập lệnh Cmd. Dưới đây là danh sách các biến môi trường hệ thống và cục bộ cho Windows XP

Biến môi trường, được sử dụng trong các tệp bó (lệnh), cho phép bạn thực hiện mà không cần chỉ định đường dẫn tuyệt đối tới các thư mục. Ví dụ, nếu chúng ta không biết trước chữ cái đĩa hệ thống, chúng ta luôn có thể sử dụng một biến %ổ đĩa hệ thống%, trả về ký tự ổ đĩa mà hệ điều hành được cài đặt. Ngoài ra, các biến được sử dụng để tối ưu hóa mã - một tham số lặp lại nhiều lần (ví dụ: khóa đăng ký) có thể được gán một biến ngắn và được sử dụng. Bài viết này thảo luận chi tiết các kỹ thuật khác nhau để làm việc với các biến, cũng như các cách thay đổi và tạo các biến mới. Bây giờ hãy nói về mọi thứ theo thứ tự.

Phân loại các biến môi trường

Bản tóm tắt

Đội Vỏ Windows(cmd.exe) khá công cụ đắc lực làm việc với hệ thống. Các tệp hàng loạt có thể tự động hóa một lượng lớn tác vụ, đó là lý do tại sao chúng thường được sử dụng để tự động Cài đặt Windows. Việc sử dụng khéo léo các biến trong tệp bó cho phép bạn giải quyết nhiều vấn đề. Làm việc với shell lệnh trở nên hiệu quả hơn và đồng thời mã cho các tệp batch được đơn giản hóa. Bạn có thể tìm thấy các ví dụ khác về cách sử dụng biến trên các trang của trang web hoặc diễn đàn. Tất cả các ví dụ được sử dụng trong bài viết này đều được lấy từ kịch bản của những người tham gia, xin cảm ơn họ rất nhiều.

Thuật ngữ

Vỏ lệnh- cái này riêng biệt phần mềm, cung cấp giao tiếp trực tiếp giữa người dùng và hệ điều hành. Chữ giao diện người dùng dòng lệnh cung cấp môi trường trong đó các ứng dụng chạy và tiện ích Với giao diện văn bản.

cmd.exe- trình thông dịch lệnh mà shell lệnh của hệ điều hành Windows sử dụng để dịch lệnh đã nhập sang định dạng mà hệ thống có thể hiểu được.

Phiên họp nhóm có thể được bắt đầu bằng cách khởi chạy cmd.exe, và phóng tập tin hàng loạt. Nói cách khác, shell lệnh hiện tại được tạo. Theo đó, việc thoát khỏi shell này (ví dụ như hoàn thiện một file batch) sẽ kết thúc phiên lệnh.

Phiên người dùng (phiên người dùng) bắt đầu khi người dùng đăng nhập (đăng nhập) và kết thúc khi người dùng đăng xuất (đăng xuất).

    Nhóm BỘĐược sử dụng để xem và thay đổi các biến môi trường trong dòng lệnh Windows. Biến môi trường là các biến có giá trị được chấp nhận đặc trưng cho môi trường trong đó chương trình hiện tại- cách tập tin hệ thống, thông tin phần cứng, thư mục người dùng, v.v. Các giá trị biến môi trường được tạo ra trong quá trình Khởi động Windows, đăng ký người dùng trong hệ thống, khi thực hiện các quy trình riêng lẻ hoặc sử dụng lệnh BỘ. Để xem giá trị được giả định bởi một biến cụ thể, bạn có thể sử dụng lệnh:

biến BỘ
THIẾT LẬP ĐƯỜNG DẪN- Hiển thị giá trị của biến CON ĐƯỜNG
Để tạo một biến mới hoặc thay đổi giá trị của biến hiện có, hãy sử dụng lệnh:

SET biến = chuỗi

Biến đổi- Tên biến môi trường.
đường kẻ- Một chuỗi ký tự được gán cho biến được chỉ định.

ĐẶT Tên tôi=Vasya- thiết lập giá trị của một biến Tên của tôi

SET path=C:\progs;%path%- thay đổi giá trị của biến CON ĐƯỜNG bằng cách thêm vào đầu dòng C:\progs

Giá trị được biến chấp nhận có sẵn để xử lý trong tệp lệnh bằng cách sử dụng tên của nó được đặt trong dấu phần trăm - % . Ví dụ: lệnh hiển thị văn bản trên màn hình ECHO có dạng:

ngày ECHO- sẽ hiển thị từ "ngày" và lệnh
ECHO %ngày% sẽ hiển thị giá trị của biến ngày, I E. ngày hiện tại ở định dạng hệ điều hành.

Đội BỘ không có tham số được sử dụng để hiển thị giá trị hiện tại của các biến môi trường.

ALLUSERSPROFILE=C:\ProgramData
APPDATA=C:\Users\Usr\AppData\Roaming
CommonProgramFiles=C:\Program Files\Common Files
TÊN MÁY TÍNH=TEST7
ComSpec=C:\windows\system32\cmd.exe
FP_NO_HOST_CHECK=KHÔNG
HOMEDRIVE=C:
HOMEPATH=\Người dùng\Usr
LOCALAPPDATA=C:\Users\Usr\AppData\Local
MÁY CHỦ ĐĂNG NHẬP=\\TEST7
NUMBER_OF_PROCESSORS=2
HĐH=Windows_NT
Đường dẫn=C:\windows\system32;C:\windows;
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS; .VBE;.JS;.JSE;.WSF;.WSH;.MSC
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_IDENTIFIER=x86 Dòng 15 Model 3 Bước 4, Intel chính hãng
PROCESSOR_LEVEL=15
PROCESSOR_REVISION=0304
ProgramData=C:\ProgramData
ProgramFiles=C:\Tệp chương trình
NHẮC NHẬN=$P$G
PSModulePath=C:\windows\system32\Windows PowerShell\v1.0\Modules\
CÔNG CỘNG=C:\Users\Công khai
SystemDrive=C:
SystemRoot=C:\windows
TEMP=C:\Users\Usr\AppData\Local\Temp
TMP=C:\Users\Usr\AppData\Local\Temp
NGƯỜI DÙNG=test7
TÊN NGƯỜI DÙNG=Usr
USERPROFILE=C:\Users\Usr
Windir=C:\windows

Ngoài các biến được hiển thị trong danh sách khi gọi lệnh SET, còn có các biến khác có giá trị thay đổi linh hoạt:

%ĐĨA CD%- lấy giá trị của thư mục hiện tại.
%NGÀY%- lấy giá trị của ngày hiện tại.
%THỜI GIAN%- lấy giá trị của thời điểm hiện tại.
%NGẪU NHIÊN%- nghĩa số ngẫu nhiên trong khoảng từ 0 đến 32767.
% LỖI%- giá trị hiện tại của ERRORLEVEL, một biến đặc biệt được sử dụng làm chỉ báo kết quả thực hiện chương trình.
%CMDEXTVERSION% CMD.EXE mở rộng giá trị phiên bản xử lý lệnh.
%CMDCMDLINE%- mở rộng đến dòng lệnh ban đầu được gọi là shell.

Nếu bạn chỉ chỉ định một phần tên khi gọi lệnh SET, danh sách các biến có tên bắt đầu bằng chuỗi đã chỉ định sẽ được hiển thị. Ví dụ:

THIẾT LẬP BẠN- sẽ hiển thị giá trị của tất cả các biến có tên bắt đầu bằng "U".

Lệnh SET hỗ trợ hai công tắc bổ sung:

biểu thức SET /A

Biến SET /P=

Khóa chuyển đổi /A chỉ định rằng chuỗi bên phải dấu bằng là một biểu thức số có giá trị đang được đánh giá. Trình xử lý biểu thức rất đơn giản và hỗ trợ hoạt động sau đây, được liệt kê theo thứ tự ưu tiên giảm dần:

Khi sử dụng bất kỳ toán tử logic hoặc nhị phân nào, bạn phải đặt chuỗi biểu thức trong dấu ngoặc kép. Bất kỳ chuỗi không phải số nào trong biểu thức đều được coi là tên biến môi trường có giá trị được chuyển đổi sang dạng số trước khi sử dụng. Nếu một biến có tên được chỉ định không được xác định trong hệ thống thì giá trị null sẽ được thay thế. Điều này cho phép bạn thực hiện các phép tính toán học với các giá trị của biến môi trường mà không cần phải nhập dấu % để lấy giá trị. Nếu SET /A được gọi từ dòng lệnh chứ không phải từ tệp bó, nó sẽ in giá trị cuối cùng của biểu thức. Tên của biến môi trường phải xuất hiện ở bên trái của bất kỳ toán tử gán nào. Giá trị sốđược coi là số thập phân trừ khi có tiền tố đứng trước:

0x- đối với số thập lục phân
0 - Vì số bát phân.

Ví dụ về việc sử dụng tiền tố:

BỘ /A REZ=0xA+012
Tiếng vang %REZ%

Trong này tập tin hàng loạt giá trị biến REZđược tính bằng cách cộng số 10 được biểu thị bằng hệ thập lục phân (0xA) và số 10 được biểu thị bằng bát phân (012).

Công tắc /P cho phép bạn đặt giá trị của biến cho chuỗi đầu vào do người dùng nhập. Hiển thị lời nhắc của chuỗi nhắc nhở được chỉ định trước khi đọc chuỗi đã nhập. Dấu nhắc nhắcString có thể trống. Chìa khóa này cho phép bạn tổ chức một cuộc đối thoại với người dùng trong tệp lệnh:

@ECHO TẮT
SET /P NAME=Nhập tên người dùng:
SET /P pass=Nhập mật khẩu:
Tên người dùng ECHO - %NAME% , Mật khẩu - %PASS%

Trong các tệp bó, bạn thường cần phải làm việc với một phần giá trị được lấy bởi một biến mà bạn sử dụng các giá trị thay thế:

biến: string1=string2- thay thế giá trị nhận được của biến dòng 1 TRÊN dòng 2

Tệp bó sau sử dụng ký tự dấu chấm sang dấu gạch ngang trong giá trị biến tương ứng với ngày hiện tại:

@ECHO TẮT
đặt tm=%DATE%
Ngày ECHO1 = %tm%
THIẾT LẬP tm=%DATE:.=-%
ECHO Ngày2 = %tm%

Để làm nổi bật một phần giá trị được lấy bởi một biến, cấu trúc sau được sử dụng:

biến:~x,y- Ở đâu x- số ký tự bị bỏ qua tính từ đầu dòng và y- số ký tự được sử dụng làm giá trị của biến.

Ví dụ sau sử dụng cách hiển thị thời gian hiện tại không có giây và phân số của giây (chỉ 5 ký tự đầu tiên từ giá trị tiêu chuẩn của biến TIME):

@ECHO TẮT
đặt tm=%TIME%
Thời gian ECHO1 = %tm%
THIẾT LẬP tm=%TIME:~0,5%
Thời gian ECHO2 = %tm%

Nếu giá trị y(độ dài) không được chỉ định thì giá trị của biến còn lại cho đến cuối dòng sẽ được sử dụng. Nếu giá trị y là số âm thì một phần của chuỗi giá trị biến từ cuối sẽ được sử dụng. Ví dụ trước có thể được sửa đổi để chỉ định rằng giá trị thời gian nhận được bị lược bỏ 6 ký tự tính từ cuối:

@ECHO TẮT
đặt tm=%TIME%
Thời gian ECHO1 = %tm%
THIẾT LẬP tm=%TIME:~0,-6%
Thời gian ECHO2 = %tm%

Có thể sử dụng số lần bỏ qua không được chỉ định và được sử dụng một số âm, thì giá trị nhận được sẽ là một phần của biến tính từ cuối dòng:

% ĐƯỜNG DẪN:~-10%- sẽ trích xuất 10 ký tự cuối cùng biến PATH

Giá trị rỗng có thể được bỏ qua, giữ nguyên định dạng thay thế:

%PATH:~0,-2% tương đương %PATH:~,-2%

Khi sử dụng biến môi trường trong tệp lệnh, có một hạn chế nhất định liên quan đến thực tế là giá trị được gán không thay đổi khi nó được sửa đổi trong một nhóm lệnh được chỉ định bởi dấu ngoặc đơn, ví dụ như trong lệnh NẾU NHƯ hoặc . Để bỏ qua hạn chế này khởi động được sử dụng bộ xử lý lệnh với tham số /V:ON và thay vì dấu phần trăm, để thu được kết quả nhận được biến giá trị, được sử dụng dấu chấm than. Ngoài ra, có thể sử dụng phóng tiêu chuẩn bộ xử lý lệnh, nhưng với kích hoạt cục bộ chế độ này yêu cầu:

Sự khác biệt về kết quả của việc sử dụng giá trị biến được thể hiện khá rõ ràng qua file batch sau:


@ECHO TẮT
đặt VAR=trước
if "%VAR%" == "trước" (
đặt VAR=sau
nếu "!VAR!" == "after" @echo Với dấu phần trăm=%VAR% , Với dấu chấm hỏi=!VAR!

Đội đặt VAR=sauđược thực thi bên trong một chương trình con được phân cách bằng dấu ngoặc đơn và nếu lệnh bị loại bỏ Setlocal EnableDelayedExpansion hoặc không sử dụng để lấy giá trị của một biến VAR dấu chấm than thì giá trị của nó sẽ giữ nguyên giá trị cũ (được đặt trước khi vào chương trình con). Một vấn đề tương tự xảy ra khi giá trị của một biến bị thay đổi trong vòng lệnh. . Ví dụ: để lấy danh sách các tệp trong thư mục hiện tại, một tệp bó như thế này sẽ không hoạt động:

đặt DANH SÁCH=
đối với %%i trong (*) hãy đặt LIST=%LIST% %%i
tiếng vang %LIST%

Giá trị biến DANH SÁCH sẽ không bị thay đổi bên trong vòng lặp. Để điều này xảy ra, tệp bó cần được sửa đổi như sau:

Setlocal EnableDelayedExpansion
đặt DANH SÁCH=
với %%i trong (*) hãy đặt LIST=!LIST! %%Tôi
tiếng vang %LIST%

Lúc này giá trị của biến DANH SÁCH bên trong một vòng lặp sẽ thay đổi, tuần tự nhận các giá trị các tên file cách nhau bởi dấu cách ( đặt LIST=!LIST! %%Tôi)

Bên trong các tệp lệnh, bạn có thể làm việc với cái gọi là biến môi trường (hoặc biến môi trường), mỗi biến được lưu trữ trong bộ nhớ truy cập tạm thời, có riêng của mình tên duy nhất và giá trị của nó là một chuỗi. Các biến môi trường tiêu chuẩn được tự động khởi tạo khi hệ điều hành khởi động. Các biến như vậy, ví dụ: WINDIR, xác định vị trí của thư mục Windows, TEMP, xác định đường dẫn đến thư mục lưu trữ Hồ sơ tạm thời Windows hoặc PATH, lưu trữ đường dẫn hệ thống (đường dẫn tìm kiếm), nghĩa là danh sách các thư mục mà hệ thống sẽ tìm kiếm các tệp thực thi hoặc tệp chia sẻ(Ví dụ, thư viện động). Bạn cũng có thể khai báo các biến môi trường của riêng mình trong các tệp bó bằng lệnh SET.

Lấy giá trị của một biến

Để lấy giá trị của một biến môi trường cụ thể, bạn cần đặt tên của biến đó bằng % ký tự. Ví dụ:

@ECHO OFF CLS REM Tạo biến MyVar SET MyVar=Xin chào REM Thay đổi biến SET MyVar=%MyVar%! Giá trị biến ECHO MyVar: %MyVar% REM Xóa biến MyVar SET MyVar= Giá trị biến ECHO WinDir: %WinDir%

Khi bạn chạy một tập tin batch như vậy, dòng này sẽ được hiển thị trên màn hình

Giá trị biến MyVar: Xin chào! Giá trị biến WinDir: C:\WINDOWS

Chuyển đổi các biến thành chuỗi

Có một số thao tác bạn có thể thực hiện với các biến môi trường trong tệp bó. Đầu tiên, thao tác nối (dán) có thể được thực hiện trên chúng. Để làm điều này, bạn chỉ cần viết giá trị của các biến được kết nối cạnh nhau trong lệnh SET. Ví dụ,

BỘ A=Một BỘ B=Hai BỘ C=%A%%B%

Sau khi thực hiện các lệnh này trong file, giá trị của biến C sẽ là chuỗi “Double”. Bạn không nên sử dụng dấu + để nối vì nó sẽ được hiểu đơn giản là một ký hiệu. Ví dụ sau khi chạy file có nội dung sau

SET A=Một SET B=Hai SET C=A+B Biến ECHO C=%C% SET D=%A%+%B% Biến ECHO D=%D%

Hai dòng sẽ được hiển thị trên màn hình:

Biến C=A+B Biến D=Một+Hai

Thứ hai, bạn có thể trích xuất các chuỗi con từ một biến môi trường bằng cách sử dụng cấu trúc %variable_name:~n1,n2%, trong đó số n1 xác định độ lệch (số ký tự cần bỏ qua) từ đầu (nếu n1 là dương) hoặc từ cuối (nếu n1 là âm) của biến môi trường tương ứng và số n2 là số ký tự được phân bổ (nếu n2 là dương) hoặc số ký tự cuối cùng trong biến sẽ không có trong chuỗi con đã chọn (nếu n2 là âm). Nếu chỉ có một tùy chọn phủ định -n được chỉ định, n ký tự cuối cùng sẽ được trích xuất. Ví dụ: nếu biến %DATE% lưu chuỗi "21/09/2007" (biểu diễn ký tự Ngày hiện tại trong một số cài đặt vùng nhất định), sau đó sau khi chạy các lệnh sau

THIẾT LẬP dd1=%DATE:~0,2% THIẾT LẬP dd2=%DATE:~0,-8% THIẾT LẬP mm=%DATE:~-7,2% THIẾT LẬP yyyy=%DATE:~-4%

các biến mới sẽ có các giá trị sau: %dd1%=21, %dd2%=21, %mm%=09, %yyyy%=2007.

Thứ ba, bạn có thể thực hiện thủ tục thay thế chuỗi con bằng cách sử dụng cấu trúc %variable_name:s1=s2%(điều này sẽ trả về một chuỗi với mỗi lần xuất hiện của chuỗi con s1 trong biến môi trường tương ứng được thay thế bằng s2 ). Ví dụ: sau khi thực hiện lệnh

BỘ a=123456 BỘ b=%a:23=99%

biến b sẽ lưu chuỗi "199456" . Nếu tham số s2 không được chỉ định thì chuỗi con s1 sẽ bị xóa khỏi chuỗi đầu ra, tức là. sau khi thực hiện lệnh

BỘ a=123456 BỘ b=%a:23=%

biến b sẽ lưu chuỗi "1456" .

Hoạt động với các biến như với số

Khi bật xử lý lệnh nâng cao (chế độ mặc định trong Windows XP), có thể coi các giá trị biến môi trường dưới dạng số và thực hiện các phép tính số học trên chúng. Để thực hiện việc này, hãy sử dụng lệnh SET với khóa chuyển đổi /A. Dưới đây là ví dụ về tệp bó add.bat cộng hai số được cung cấp dưới dạng tham số dòng lệnh và hiển thị tổng kết quả trên màn hình:

@ECHO OFF REM Biến M sẽ lưu tổng SET /A M=%1+%2 ECHO Tổng của %1 và %2 bằng %M% REM Xóa biến M SET M=

Thay đổi cục bộ biến

Mọi thay đổi bạn thực hiện đối với các biến môi trường trong tệp lệnh bằng lệnh SET vẫn tồn tại sau khi tệp thoát nhưng chỉ có hiệu lực trong cửa sổ lệnh hiện tại. Cũng có thể bản địa hóa các thay đổi đối với các biến môi trường bên trong một tệp bó, nghĩa là tự động khôi phục giá trị của tất cả các biến như trước khi tệp được khởi chạy. Hai lệnh được sử dụng cho việc này: SETLOCAL và ENDLOCAL. Lệnh SETLOCAL xác định điểm bắt đầu của một vùng cài đặt cục bộ các biến môi trường. Nói cách khác, những thay đổi môi trường được thực hiện sau khi chạy SETLOCAL sẽ cục bộ đối với tệp bó hiện tại. Mỗi lệnh SETLOCAL phải có lệnh ENDLOCAL tương ứng để khôi phục các giá trị biến môi trường trước đó. Những thay đổi về môi trường được thực hiện sau khi lệnh ENDLOCAL được thực thi không còn cục bộ đối với tệp bó hiện tại; các giá trị trước đó của chúng sẽ không được khôi phục sau khi hoàn thành việc thực thi tệp này.

Khai báo các biến của riêng bạn là một phần không thể thiếu của hầu hết mọi ngôn ngữ lập trình, vì vậy trong ngôn ngữ vbscript chúng được khai báo bằng từ khóa lờ mờ và trong jscript nó được sử dụng từ khóa var.

Biến lệnh Chuỗi Windowsđại diện cho một ký tự hơi khác, ở đây bạn không thể khai báo một nhóm biến cmd hoặc gán ngay giá trị cho một số biến trên dòng lệnh. Chúng ta hãy xem các dòng mã sau:

tiếng vang % Var3% tiếng vang % VAR3% tiếng vang % vAr3%

Một điểm đáng cân nhắc là việc ghi âm

đặt var1 = 100
đặt var1 = 100

Điều này không giống nhau, nghĩa là trong trường hợp đầu tiên chúng ta tạo biến cmd "var1" và trong trường hợp thứ hai - "var1". Tình huống tương tự với việc gán giá trị, vì vậy hãy chú ý đến khoảng trắng!!!

Chúng ta thấy rằng chúng ta có thể hiển thị giá trị của một biến bằng hàm Tiếng vọng, chúng tôi đặt nó trong ký hiệu "%" cho bộ– chúng ta chỉ cần viết tên của nó; cũng cần lưu ý rằng tất cả các biến đều được gán một kiểu chuỗi.

Nếu bạn chạy lệnh cmd set, hiển thị danh sách tất cả các biến và giá trị của chúng trong phiên hiện tại, bạn sẽ thấy những biến mới được tạo cũng sẽ có mặt ở đó biến cmd Và . Chúng tôi sẽ có thể truy cập chúng trong toàn bộ phiên.

Để xóa nội dung của các biến trong dòng lệnh Windows, bạn chỉ cần gán một giá trị trống:

sẽ chỉ in dòng %Var3% và lệnh

TRONG trong ví dụ này Chúng tôi đã thoát khỏi các ký tự & và ^, từ đó gán các cụm từ:

"100 & 3 = 5"
"100 ^3"

Điều đáng chú ý là nếu chúng ta cố gắng hiển thị giá trị của các biến này bằng cách sử dụng chức năng cmd set thì sẽ không có vấn đề gì, nhưng nếu sử dụng hàm echo thì chúng ta sẽ nhận được một kết quả hoàn toàn khác so với những gì chúng ta mong đợi. Vì vậy, khi bạn cố chạy lệnh sau:

Bây giờ khi thực thi mã:

tiếng vang %var4% tiếng vang %var5%

mọi thứ sẽ ổn thôi.

Rõ ràng là các biến cmd được tạo trong cửa sổ dòng lệnh hiện tại không có sẵn cho các quy trình khác, nhưng có thể đặt ra các hạn chế lớn hơn nữa.

Để đặt phạm vi cục bộ, hãy sử dụng một khối THIẾT LẬP ĐỊA PHƯƠNG...ENDLOCAL. Tất cả các biến cmd dòng lệnh của Windows được khai báo ở giữa khối này sẽ không hiển thị bên ngoài nó. Mở trình soạn thảo (Tôi sử dụng trình soạn thảo Sổ tay++, vì nó ngay lập tức làm nổi bật mã) và viết các dòng mã sau vào đó:

Chúng ta thấy rằng đầu tiên chúng ta khai báo var1 và gán cho nó giá trị 0, sau đó chúng ta lại khai báo một biến có cùng tên, nhưng trong khối THIẾT LẬP ĐỊA PHƯƠNG...ENDLOCAL. Tập lệnh xuất ra giá trị của cả var1 cục bộ và toàn cục. Tôi đặc biệt sử dụng các ký tự Latinh để nếu có chuyện gì xảy ra, bạn sẽ không bị lang băm.

Các biến đặt môi trường Cmd.exe. Họ quy định không chỉ hành vi của shell lệnh mà còn cả chính hệ điều hành. Các biến nên được chia thành hai loại, mỗi loại có các thuộc tính duy nhất: hệ thống và cục bộ. Loại đầu tiên cho phép bạn thiết lập hành vi của môi trường hệ điều hành toàn cầu trong quá trình làm việc. Các biến cục bộ đặt hoạt động của môi trường dành riêng cho một phiên bản cụ thể của Cmd.exe. Điều này cần được lưu ý như một sự khác biệt chính.

Ông nói về các biến hệ thống là chúng được cài đặt sẵn trong HĐH và có thể được sử dụng bởi tất cả các ứng dụng. Để thực hiện thay đổi đối với chúng, bạn phải có quyền truy cập của quản trị viên. Ứng dụng phổ biến nhất là cung cấp tác vụ khởi động hệ thống. Khi một sự kiện như vậy được thực hiện cho một người dùng cụ thể, chúng ta có thể nói về khả năng sử dụng các biến cục bộ.

Dưới đây là danh sách các lớp biến hiện có dựa trên tầm quan trọng của mức độ ưu tiên của chúng (theo thứ tự giảm dần):

  • Hệ thống tích hợp. Chúng phải được gọi là nghiêm trọng nhất, cung cấp Đặc biệt chú ý trong tiến trình.
  • Biến loại hệ thống, liên quan đến HKEY_LOCAL_MACHINE.
  • Biến loại địa phương, liên quan đến HKEY_CURRENT_USER.
  • Danh sách đầy đủ các biến và môi trường được tìm thấy trong tài liệu Autoexec.bat.
  • Danh sách đầy đủ các biến và môi trường được tìm thấy trong tập lệnh khởi động hệ thống. Trong một số trường hợp nhất định, nó có thể không tồn tại.
  • Các biến được áp dụng tương tác cho một tập lệnh bằng văn bản hoặc tài liệu bó.

Có khá nhiều danh sách dài các biến thuộc danh mục cục bộ hoặc hệ thống. Cần phải chú ý nhiều hơn đến vấn đề này.

Biến cục bộ

Tên Thông tin

%ALLUSERSPROFILE%

Cung cấp thông tin về vị trí chính xác của hồ sơ Tất cả người dùng

Cung cấp vị trí mặc định của chương trình

Cho phép bạn lấy đường dẫn đến thư mục bạn đang sử dụng

Cung cấp dòng lệnh được sử dụng để chạy phiên bản hiện tại của Cmd.exe

Cung cấp tên của bộ điều khiển miền đang xác thực phiên được chỉ định

Cho phép bạn cung cấp tham số KA cho trình thông dịch hiện tại. Để có quyền truy cập, bạn phải sử dụng Cmd.exe

Cung cấp tên miền có danh sách tài khoản người dùng

Cung cấp tên của người dùng đã đăng nhập

Trả về vị trí tài khoản cho người dùng hiện tại

Biến hệ thống

Cho phép bạn cung cấp số phiên bản của tiện ích mở rộng bộ xử lý lệnh hiện tại

Cung cấp tên của thiết bị mà công việc đang được thực hiện

Trả về đường dẫn đến tệp thực thi vỏ lệnh

Cung cấp thông tin hợp lệ. Cần lưu ý rằng nó dự định sử dụng định dạng tương tự như ngày /t. Tất cả thông tin về lệnh được chỉ định có thể lấy trực tiếp từ phần tương ứng trên trang web

Được sử dụng để cung cấp mã lỗi của lệnh cuối cùng được sử dụng. Tình huống tiêu chuẩn giả sử sự hiện diện của một giá trị khác 0

Cung cấp tiêu đề đĩa trạm làm việc, được liên kết với thư mục của người dùng. Bắt buộc phải cài đặt dựa trên vị trí của thư mục chính

Cung cấp đường dẫn đến thư mục chính của người dùng. Nên cài đặt dựa trên thông tin về vị trí của thư mục chính

Cung cấp đường dẫn đến thư mục chính chung của người dùng. Nên cài đặt dựa trên thông tin về vị trí của thư mục chính

%NUMBER_OF_PROCESSORS%

Xác định số lượng bộ xử lý mà một thiết bị cụ thể có

Truyền thông tin về tên hệ điều hành thiết bị cụ thể. Có một số tính năng nhất định trong việc hiển thị tên của một số loại HĐH và điều này phải được tính đến

Đặt đường dẫn tìm kiếm để phát hiện chương trình

Cung cấp danh sách các phần mở rộng tài liệu được HĐH coi là có thể thực thi được

%PROCESSOR_ARCHITECTURE%

Được sử dụng trong trường hợp cần thiết để có được kiến ​​trúc của một bộ xử lý cụ thể

%PROCESSOR_IDENTFIER%

Cung cấp thông tin ngắn về bộ xử lý

%PROCESSOR_LEVEL%

Cung cấp thông tin về số sửa đổi bộ xử lý

Cung cấp bất kỳ số nguyên nào trong phạm vi bao gồm 0-32767

Cung cấp tên của đĩa chứa thư mục gốc của Windows XP

Cung cấp vị trí của thư mục hệ điều hành

Các biến này là hệ thống và người dùng. Điều này cho phép bạn thực hiện các tác vụ giống hệt với Những tình huống khác nhau. Cung cấp các thư mục tạm thời mà tất cả người dùng có thể sử dụng. Vì một số chương trình nhất định bạn cần sử dụng TEMP hoặc TMP.

Cung cấp thông tin về thời gian cho khoảnh khắc này. Một định dạng hiển thị tương tự như thời gian/t được sử dụng.

Cho phép bạn trả lại thư mục hệ điều hành

Đặt biến môi trường

Để tạo, xóa hoặc hiển thị biến môi trường, bạn phải sử dụng đội đặc biệt bộ. Một tính năng đặc biệt là việc điều chỉnh các biến độc quyền trong môi trường shell hoạt động.

Để phát hành một biến cụ thể, nó được cung cấp để viết vào KS:

đặt biến_name

Việc thêm một biến khác được thực hiện bằng cách viết:

đặt tên biến = giá trị

Để thực hiện thủ tục xóa, bạn nên viết dòng:

đặt biến_name=

Hệ thống chỉ định việc sử dụng hầu hết các ký hiệu hiện có để làm giá trị. Prodels cũng có thể được đưa vào đây. Để áp dụng một số ký tự nhất định, trước tiên bạn phải nhập (^) hoặc đặt trong dấu ngoặc kép. Nếu không làm như vậy có thể dẫn đến việc thực hiện không chính xác hoặc sai sót. Một số cần được xem xét ví dụ đơn giản. Giả sử chúng ta cần tạo một biến mới&name. Để hoàn thành nhiệm vụ, thông tin sau được nhập vào CS:

đặt varname=new^&name

Bạn có thể cố gắng không sử dụng ký tự đặc biệt (^), nhưng điều đó sẽ không thể thực hiện được. Lý do là nó cứ báo lỗi tương tự.

Khi biến được đặt, việc sử dụng chữ in hoa hay chữ nhỏ không quan trọng. Trường hợp sẽ không được tính đến. Chỉ có một tính năng đặc biệt- biến vẫn sẽ được hiển thị chính xác như khi nó được nhập. Điều này giúp bạn dễ dàng nhận biết hơn nếu bạn sử dụng các thanh ghi khác nhau để phân biệt khi viết tên.

Thay thế vào các biến môi trường

Có một cách để thay thế giá trị nhất định tới các biến môi trường trực tiếp từ CS hoặc tập lệnh. Để thực hiện nhiệm vụ này, nên sử dụng ký hiệu phần trăm. Nó trông như thế này:

%tên_biến%

Nó nhằm mục đích chỉ ra thực tế là Cmd.exe phải truy cập trực tiếp vào các giá trị của một biến cụ thể. Thủ tục so sánh từng ký tự sẽ không được thực hiện. Điều quan trọng cần lưu ý là bản thân sự thay thế không được coi là đệ quy. Việc kiểm tra chỉ được thực hiện một lần.