Windows 7 ბრძანების ხაზის გარემოს ცვლადები. დახმარება მითითებული ბრძანებისა და მისი პარამეტრების შესახებ

ამ სტატიაში:

  • ცვლადების განსაზღვრა
  • ბრძანების ხაზის ცვლადები (bat ფაილის გამოძახების პარამეტრები)
  • IF პირობითი ოპერატორი
  • ფუნქციები
  • დაბრუნების მნიშვნელობების გამოყენება (გასვლის კოდის დამუშავება)

ცვლადების განსაზღვრა

SET<Имяпеременной>=<Значениепеременной>

SET განცხადება არის პარამეტრებთან მუშაობის ოპერაციული სისტემის პარამეტრების გაფართოება. ის განსაზღვრავს ცვლადს, რომლის მნიშვნელობაც ენაცვლება მის სახელს, როდესაც ეს სახელი გამოიყენება პროცენტულ ნიშნებს შორის. ასე რომ, თუ მოცემულია (ცვლადი, რომელსაც მოითხოვს ბევრი თამაში, რომელიც იყენებს კომპიუტერის ხმის ბარათს):

SET BLASTER=A220 I5 D1 P330

შემდეგ, როდესაც იყენებთ შემდეგ კონსტრუქციას სერიულ ფაილში:

ECHO %BLASTER%

"A220 I5 D1 P330" გამოჩნდება. SET განცხადების გამოყენებით განსაზღვრულ ცვლადებს ეწოდება გარემოს ცვლადები და ხილულია შესრულების შემდეგ, სანამ DOS არ გადაიტვირთება (თუ ხელით არ შეიცვლება მეხსიერებაში). ანუ, მისი გამოყენება შესაძლებელია ერთი სერიული ფაილიდან ან პროგრამიდან მეორეში მითითებულის შემდეგ. ყველაზე ცნობილი არის PATH ცვლადი, რომელიც წარმოადგენს ბილიკების ერთობლიობას ფაილების სწრაფად მოსაძებნად. ის დაყენებულია autoexec.bat ფაილში.

ბრძანების ხაზის ცვლადები
(პარამეტრები bat ფაილის გამოძახებისთვის)

%<цифра 0-9>

როგორც ნებისმიერ ენაში, სურათების ფაილის ენაშიც შესაძლებელია bat ფაილის პარამეტრებად მიღებული ცვლადების გამოყენება.

სულ შეიძლება იყოს 10 ერთდროულად არსებული დამოუკიდებელი ცვლადი. ეს საკმაოდ მცირეა რთული პროგრამების დასაწერად, თუმცა 3-4 ხშირად საკმარისია ჩვეულებრივი სამუშაოსთვის. ცვლადის მნიშვნელობა უდრის ბრძანების სტრიქონიდან შესაბამისი პარამეტრის მნიშვნელობას. %0 ცვლადი შეიცავს .bat ფაილის სახელს და თუ თქვენ მიუთითეთ, მისკენ მიმავალ გზას. ანუ, თუ თქვენ გაუშვით abc.bat ფაილი შემდეგი პარამეტრებით:

abc.bat a bc def

მაშინ ცვლადი %0 შეიცავს abc.bat მნიშვნელობას, %1 შეიცავს მნიშვნელობას a, %2 შეიცავს bc და %3 შეიცავს def. ეს თვისება ფართოდ გამოიყენება მრავალმხრივი სერიული ფაილების შესაქმნელად, განმეორებადი ოპერაციების დროს.

ბრძანების ხაზიდან 10-ზე მეტი ცვლადის მისაღებად, შეგიძლიათ გამოიყენოთ SHIFT ბრძანება.

SHIFT ბრძანება საშუალებას გაძლევთ გამოიყენოთ 10-ზე მეტი ბრძანების პარამეტრი, თუმცა, შესაბამისი ადრინდელი პარამეტრები იკარგება. სხვა სიტყვებით რომ ვთქვათ, SHIFT ბრძანება ცვლის ყველა ცვლადის მნიშვნელობას ერთი ნაბიჯით მარცხნივ. ანუ, %0 ცვლადი შეიცავს %1 ცვლადში ადრე არსებულ მნიშვნელობას, ხოლო ცვლადი %1 შეიცავს %2 ცვლადის მნიშვნელობას ცვლამდე. თუმცა, ეს ოპერაცია შეუქცევადია, ანუ შეუძლებელია ცვლადების უკან გადატანა.

IF პირობითი ოპერატორი

საბედნიეროდ, თანამედროვე Windows 2000-ის და უფრო გვიანდელი ბრძანებების cmd.exe თარჯიმანი მხარს უჭერს ბრძანების ბლოკებს განშტოების კონსტრუქციებში, რაც გამორიცხავს IF-ების საჭიროებას ეტიკეტებით. ბრძანების ბლოკები ჩასმულია ფრჩხილებში. ეს ასე გამოიყურება (C/C++ ჩაღრმავების სტილის იმიტაცია):

თუ მდგომარეობა (

Rem ბრძანებები "შემდეგ" ფილიალის

რემ...

) სხვა (

"სხვა" ფილიალის Rem ბრძანებები

რემ...

კონკრეტული გამოყენების მაგალითი:

@echo გამორთულია

დააყენეთ BUILDMODE=%1

თუ "%BUILDMODE%" == "" (

Echo FAIL: არგუმენტი საჭიროა ^(--გამართვა, --გამოშვება^)

გასვლა /b 1

rem ამოიღეთ ყველა დეფისი არგუმენტიდან დამუშავების გასამარტივებლად

დააყენეთ BUILDMODE=%BUILDMODE:-=%

თუ "%BUILDMODE%" == "გამართვა" (

დააყენეთ CCFLAGS=/Od /MDd /Z7

) სხვა (

დააყენეთ CCFLAGS=/O2 /MD

ჩემი აზრით, ამით ცხოვრება სავსებით შესაძლებელია. მაგრამ, როგორც ყოველთვის, ცხოვრება არც ისე მარტივია, როგორც ჩანს. ერთი პრობლემაა. მაშინ და სხვა ბლოკებში გამოყენებული ცვლადები გაფართოებულია ბლოკების შესრულების დაწყებამდე და არა შესრულების დროს. ზემოთ მოცემულ მაგალითში ეს არ იწვევს რაიმე პრობლემას, მაგრამ შემდეგში ეს გამოიწვევს:

თუ "%BUILDMODE%" == "გამართვა" (

Echo INFO: გარემოს გამართვის რეჟიმის დაყენება

დააყენეთ OPTFLAGS=/ოდ

დააყენეთ CCFLAGS=%OPTFLAGS% /MDd /Z7

) სხვა (

Echo INFO: გარემოს გათავისუფლების რეჟიმის დაყენება

დააყენეთ OPTFLAGS=/O2

დააყენეთ CCFLAGS=%OPTFLAGS% /MD

მთავარი ის არის, რომ ორივე ბლოკში, OPTFLAGS ცვლადის ჩანაცვლება მოხდება მანამ, სანამ ის შეიცვლება ამ ბლოკის შესრულებისას. შესაბამისად, CCFLAGS შეივსება იმ მნიშვნელობით, რომელიც OPTFLAGS-ს ჰქონდა ამის შესრულების დროს, თუ ბლოკი დაიწყო.

ეს პრობლემა მოგვარებულია დაგვიანებული ცვლადის გაფართოების გამოყენებით. ცვლადები შეიცავს !…! %...%–ის ნაცვლად მათი მნიშვნელობა მხოლოდ პირდაპირი გამოყენების მომენტში გამოვლინდება. ეს რეჟიმი ნაგულისხმევად გამორთულია. თქვენ შეგიძლიათ ჩართოთ იგი /V:ON გადამრთველის გამოყენებით cmd.exe-ზე დარეკვისას, ან ბრძანების გამოყენებით:

თავად bat ფაილის ტექსტში. მეორე მეთოდი ჩემთვის უფრო მოსახერხებელი მეჩვენება - არც ისე მაგარია მოითხოვო ვინმესგან შენი სკრიპტის გაშვება გარკვეული პარამეტრით.

ამის გათვალისწინებით, წინა "არასწორი" მაგალითი შეიძლება ასე გამოსწორდეს:

setlocal ჩართვა დაგვიანებული გაფართოება

თუ "%BUILDMODE%" == "გამართვა" (

Echo INFO: გამართვის რეჟიმის გარემოს დაყენება

დააყენეთ OPTFLAGS=/ოდ

დააყენეთ CCFLAGS=!OPTFLAGS! /MDd /Z7

) სხვა (

Echo INFO: გამოშვების რეჟიმის გარემოს დაყენება

დააყენეთ OPTFLAGS=/O2

დააყენეთ CCFLAGS=!OPTFLAGS! /MD

ახლა ეს არის თითქმის სრულფასოვანი ბლოკი. თითქმის იმიტომ, რომ თუ ერთ-ერთ echo ბრძანებაში შეხვდებით დახურვის ფრჩხილს, თქვენ უნდა გაექცეთ მას ^ სიმბოლოთი, წინააღმდეგ შემთხვევაში პარსერი დაიბნევა...

ნებისმიერ შემთხვევაში, ეს ბევრად უკეთესია, ვიდრე ტეგების და გადასვლების გიჟური რაოდენობა.

ფუნქციები

შესაძლებელია თუ არა bat ფაილში ფუნქციის შექმნა? Დიახ, შეგიძლია. უფრო მეტიც, ზოგჯერ ეს საჭიროა კიდეც. მართალია, მათ შეიძლება ეწოდოს ფუნქციები პირობითად.

ზარის ბრძანებისთვის არის სპეციალური სინტაქსი, რომელიც საშუალებას გაძლევთ გადახვიდეთ ნიშანზე იმავე bat ფაილში, დაიმახსოვროთ ადგილი, საიდანაც ეს ზარი განხორციელდა:

call:label არგუმენტები

ფუნქცია ბრუნდება ბრძანებით:

გასვლა /b [სურვილისამებრ დაბრუნების კოდი]

აქ ძალიან მნიშვნელოვანია /b ღილაკი: მის გარეშე თქვენ გამოხვალთ არა ფუნქციიდან, არამედ ზოგადად სკრიპტიდან.

დეტალებისთვის, აკრიფეთ ბრძანების ხაზი:

დარეკვა/?

გასვლა/?

საინტერესოა, რომ ზარის ბრძანება ამ სინტაქსით მხარს უჭერს რეკურსიულ ზარებს ცვლადი არგუმენტებისთვის %0-%9 ახალი ჩარჩოს ავტომატური შექმნით. ზოგჯერ ეს შეიძლება სასარგებლო იყოს. აქ არის რეკურსიული ფაქტორული გაანგარიშების კლასიკური მაგალითი ბრძანების ენაზე:

@echo გამორთულია

ზარი:ფაქტორული %1

ექო %RESULT%

გასასვლელი

rem ფუნქცია ფაქტორული მნიშვნელობის გამოსათვლელად

rem შესვლა:

rem %1 რიცხვი, რომლისთვისაც გსურთ გამოთვალოთ ფაქტორიალი

rem გამომავალი:

rem %RESULT% ფაქტორული მნიშვნელობა

:ფაქტორული

თუ %1 == 0 (

დააყენეთ RESULT=1

გასვლა /ბ

თუ %1 == 1 (

დააყენეთ RESULT=1

გასვლა /ბ

კომპლექტი /a PARAM=%1 - 1

ზარი:ფაქტორული %PARAM%

კომპლექტი /a RESULT=%1 * %RESULT%

გასვლა /ბ

სამუშაოს მაგალითი:

> factorial.bat 10

3628800

დაბრუნების ღირებულებების გამოყენება
(პროგრამის გასასვლელი კოდის დამუშავება)

როდესაც რომელიმე პროგრამა ასრულებს თავის მუშაობას, ის უბრუნებს ტერმინის კოდს ოპერაციულ სისტემას. ჩვეულებრივია ნულის დაბრუნება წარმატებით დასრულების შემდეგ, წინააღმდეგ შემთხვევაში შეცდომის კოდი. ხანდახან, უფრო ხშირად, პროგრამა „განზრახ“ აბრუნებს არა-ნულოვან მნიშვნელობას, რათა მისი მოქმედების ზოგიერთი დეტალი „შეისწავლოს“ ჯგუფურ ფაილში. მაგალითად, პროგრამა აბრუნებს დაჭერილი კლავიშის კოდს და .bat ფაილი მასზე დაყრდნობით ასრულებს სხვადასხვა მოქმედებებს.

როგორ შეიძლება სერიულმა ფაილმა გაარკვიოს შესრულებული პროგრამის გასასვლელი კოდი? ERRORLEVEL გასაღები ცვლადი მოწოდებულია ამ მიზნით.

სერიული ფაილის მაგალითი შეცდომის დონეებით:

@ECHO OFF

REM გაუშვით პროგრამა prg1.exe

PRG1.EXE

REM დასრულების კოდის ანალიზი

IF ERORLEVEL 2 GOTO FILENOTFOUND

IF ERORLEVEL 1 GOTO WRITEERROR

IF ERORLEVEL 0 GOTO EXITOK

GOTO ONEXIT

:ᲤᲐᲘᲚᲘ ᲐᲠ ᲛᲝᲘᲫᲔᲑᲜᲐ

ECHO შეცდომა! Ფაილი არ მოიძებნა!

GOTO ONEXIT

:მწერალი

ECHO ჩაწერის შეცდომა!

GOTO ONEXIT

:EXITOK

ECHO პროგრამა წარმატებით დასრულდა.

GOTO ONEXIT

:ONEXIT

გთხოვთ გაითვალისწინოთ, რომ შეწყვეტის კოდის ანალიზი არ იწყება ნულიდან, არამედ მაქსიმალური შესაძლო მნიშვნელობიდან. ფაქტია, რომ ასეთი შემოწმება ნიშნავს: "თუ შეცდომის დონე მეტია ან ტოლია მნიშვნელობაზე, მაშინ...". ანუ ნულიდან რომ შევამოწმოთ, პირველ სტრიქონზე ნებისმიერი მნიშვნელობა იქნება true, რაც არასწორია.

ეს არის ყველაზე გავრცელებული შეცდომა ამ ტიპის პროგრამებში.

ცვლადები ადგენენ Cmd.exe გარემოს. ისინი განსაზღვრავენ არა მხოლოდ ბრძანების გარსის ქცევას, არამედ თავად OS-ს. ცვლადები უნდა დაიყოს ორ ტიპად, რომელთაგან თითოეულს აქვს უნიკალური თვისებები: სისტემური და ადგილობრივი. პირველი ტიპი საშუალებას გაძლევთ დააყენოთ გლობალური OS გარემოს ქცევა მუშაობის დროს. ლოკალური ცვლადები ადგენენ გარემოს აქტივობას ექსკლუზიურად Cmd.exe-ის კონკრეტულ მაგალითზე. ეს უნდა აღინიშნოს, როგორც ძირითადი განსხვავება.

მისი საუბარი სისტემის ცვლადებზე არის ის, რომ ისინი წინასწარ არის დაინსტალირებული OS-ში და მათი გამოყენება შესაძლებელია ყველა აპლიკაციისთვის. მათში ცვლილებების შესატანად, თქვენ უნდა გქონდეთ ადმინისტრატორის წვდომის უფლებები. ყველაზე გავრცელებული აპლიკაცია არის სისტემის გაშვების ამოცანის უზრუნველყოფა. როდესაც ასეთი ღონისძიება ტარდება კონკრეტული მომხმარებლისთვის, შეგვიძლია ვისაუბროთ ლოკალური ცვლადების გამოყენების შესაძლებლობაზე.

ქვემოთ მოცემულია არსებული ცვლადის კლასების სია, მათი პრიორიტეტის მნიშვნელობიდან გამომდინარე (კლებადობით):

  • ჩაშენებული სისტემა. მათ უნდა ვუწოდოთ ყველაზე სერიოზულები, რაც განსაკუთრებულ ყურადღებას მოითხოვს მუშაობის პროცესში.
  • სისტემის ხედვის ცვლადები დაკავშირებული HKEY_LOCAL_MACHINE-თან.
  • ლოკალური ხედვის ცვლადები დაკავშირებული HKEY_CURRENT_USER-თან.
  • Autoexec.bat დოკუმენტში ნაპოვნი ცვლადების და გარემოს სრული სია.
  • სისტემის გაშვების სკრიპტში ნაპოვნი ცვლადებისა და გარემოს სრული სია. გარკვეულ სიტუაციებში ის შეიძლება არ არსებობდეს.
  • ინტერაქტიულად გამოყენებული ცვლადები წერილობითი სკრიპტის ან პარტიული დოკუმენტისთვის.

არსებობს ცვლადების საკმაოდ გრძელი სია, რომლებიც მიეკუთვნება ლოკალურ ან სისტემურ კატეგორიას. ამ საკითხს მეტი ყურადღება უნდა მიექცეს.

ლოკალური ცვლადები

სახელი ინფორმაცია

%ALLUSERSPROFILE%

გვაწვდის ინფორმაციას იმის შესახებ, თუ სად მდებარეობს ზუსტად ყველა მომხმარებლის პროფილი

უზრუნველყოფს პროგრამების ნაგულისხმევ მდებარეობას

საშუალებას გაძლევთ მიიღოთ გზა იმ საქაღალდემდე, რომელსაც იყენებთ

გთავაზობთ ბრძანების ხაზს, რომელიც გამოიყენება Cmd.exe-ის მიმდინარე ინსტანციის გასაშვებად

გთავაზობთ დომენის კონტროლერის სახელს, რომელიც ამოწმებს მითითებულ სესიას

საშუალებას გაძლევთ მიაწოდოთ KA პარამეტრები მიმდინარე თარჯიმნისთვის. წვდომის მისაღებად, თქვენ უნდა გამოიყენოთ Cmd.exe

გთავაზობთ დომენის სახელს, რომელსაც აქვს მომხმარებლის ანგარიშების სია

გთავაზობთ იმ მომხმარებლის სახელს, რომელიც შესულია სისტემაში

აბრუნებს ანგარიშის პოზიციას მიმდინარე მომხმარებლისთვის

სისტემის ცვლადები

საშუალებას გაძლევთ მიუთითოთ მიმდინარე ბრძანების პროცესორის გაფართოებების ვერსიის ნომერი

მიუთითებს მოწყობილობის სახელს, რომელზედაც მიმდინარეობს სამუშაო

აბრუნებს გზას შესრულებადი ბრძანების გარსისკენ

გვაწვდის ნამდვილ ინფორმაციას. უნდა აღინიშნოს, რომ გამიზნულია თარიღის /t მსგავსი ფორმატის გამოყენება. ყველა ინფორმაცია მითითებული ბრძანების შესახებ შეგიძლიათ მიიღოთ უშუალოდ საიტის შესაბამისი განყოფილებიდან

გამოიყენება ბოლო გამოყენებული ბრძანების შეცდომის კოდის მისაღებად. სტანდარტული სიტუაცია გულისხმობს მნიშვნელობის არსებობას, რომელიც განსხვავდება ნულიდან

გთავაზობთ სამუშაო სადგურის დისკის სახელს, რომელიც დაკავშირებულია მომხმარებლის დირექტორიასთან. საჭიროა ინსტალაცია ძირითადი დირექტორიას ადგილმდებარეობის მიხედვით

გთავაზობთ ბილიკს მომხმარებლის მთავარ დირექტორიაში. უნდა იყოს დაინსტალირებული ძირითადი დირექტორიას ადგილმდებარეობის შესახებ ინფორმაციის საფუძველზე

გთავაზობთ გზას მომხმარებლის საერთო მთავარ დირექტორიაში. უნდა იყოს დაინსტალირებული ძირითადი დირექტორიას ადგილმდებარეობის შესახებ ინფორმაციის საფუძველზე

%NUMBER_OF_PROCESSORS%

განსაზღვრავს პროცესორების რაოდენობას კონკრეტულ მოწყობილობას

გადასცემს ინფორმაციას იმის შესახებ, თუ რა სახელი აქვს OS კონკრეტულ მოწყობილობაზე. ზოგიერთი ტიპის OS-სთვის სახელის ჩვენების გარკვეული მახასიათებლები არსებობს და ეს გასათვალისწინებელია

ადგენს საძიებო გზას პროგრამების აღმოსაჩენად

გთავაზობთ დოკუმენტების გაფართოებების ჩამონათვალს, რომლებიც განიხილება OS-ს მიერ შესრულებად

%PROCESSOR_ARCHITECTURE%

გამოიყენება იმ შემთხვევებში, როდესაც აუცილებელია კონკრეტული პროცესორის არქიტექტურის მიღება

%PROCESSOR_IDENTFIER%

გთავაზობთ მოკლე ინფორმაციას პროცესორის შესახებ

%PROCESSOR_LEVEL%

გვაწვდის ინფორმაციას პროცესორის რევიზიის ნომრის შესახებ

გთავაზობთ ნებისმიერ მთელ რიცხვს 0-32767-ის ჩათვლით

გთავაზობთ დისკის სახელს, რომელზეც ჩაწერილია Windows XP-ის ძირეული დირექტორია

გთავაზობთ OS სისტემის დირექტორიას ადგილმდებარეობას

ეს ცვლადებია სისტემა და მომხმარებელი. ეს საშუალებას გაძლევთ შეასრულოთ იგივე დავალებები სხვადასხვა სიტუაციებში. გთავაზობთ დროებით საქაღალდეებს, რომელთა გამოყენებაც ყველა მომხმარებელს შეუძლია. გარკვეული პროგრამებისთვის თქვენ უნდა გამოიყენოთ TEMP ან TMP.

გთავაზობთ ინფორმაციას მიმდინარე დროის შესახებ. გამოიყენება დისპლეის მსგავსი ფორმატი დროის /t.

საშუალებას გაძლევთ დააბრუნოთ OS დირექტორია

გარემოს ცვლადების დაყენება

გარემოს ცვლადის შესაქმნელად, წასაშლელად ან გამოსავლენად, თქვენ უნდა გამოიყენოთ სპეციალური ნაკრები ბრძანება. გამორჩეული თვისებაა ცვლადების რეგულირება ექსკლუზიურად საოპერაციო გარსის გარემოში.

კონკრეტული ცვლადის გამოსაცემად, მოცემულია CS-ში ჩაწერა:

ცვლადის_სახელის დაყენება

სხვა ცვლადის დამატება ხდება წერით:

დააყენეთ ცვლადის სახელი=მნიშვნელობა

წაშლის პროცედურის შესასრულებლად, თქვენ უნდა დაწეროთ ხაზი:

დააყენეთ ცვლადი_სახელი=

სისტემა განსაზღვრავს არსებული სიმბოლოების უმეტესობის გამოყენებას მნიშვნელობებად. აქ ასევე შეიძლება შევიდეს პროდუქტები. გარკვეული სიმბოლოების გამოსაყენებლად, ჯერ უნდა შეიყვანოთ (^) ან ჩასვათ ისინი ბრჭყალებში. ამის შეუსრულებლობამ შეიძლება გამოიწვიოს არასწორი შესრულება ან შეცდომები. ჩვენ უნდა შევხედოთ რამდენიმე მარტივ მაგალითს. ვთქვათ, უნდა შევქმნათ ახალი&სახელის ცვლადი. დავალების შესასრულებლად, CS-ში შედის შემდეგი:

დააყენეთ varname=new^&name

შეგიძლიათ სცადოთ არ გამოიყენოთ სპეციალური სიმბოლო (^), მაგრამ ამის გაკეთება შეუძლებელი იქნება. მიზეზი ის არის, რომ ის კვლავ აძლევს იგივე შეცდომას.

როდესაც ცვლადი დაყენებულია, არ აქვს მნიშვნელობა დიდი ასოებით იქნება გამოყენებული თუ პატარა. შემთხვევა არ იქნება გათვალისწინებული. არის ერთი გამორჩეული თვისება - ცვლადი მაინც გამოჩნდება ზუსტად ისე, როგორც იყო შეყვანილი. ეს აადვილებს აღქმას, თუ იყენებთ სხვადასხვა რეგისტრის დიფერენცირებას სახელების წერისას.

ჩანაცვლება გარემოს ცვლადებში

არსებობს გარკვეული მნიშვნელობების გარემოს ცვლადებში ჩანაცვლების საშუალება პირდაპირ CS-დან ან სკრიპტიდან. ამ ამოცანის შესასრულებლად რეკომენდებულია პროცენტული სიმბოლოების გამოყენება. ეს ასე გამოიყურება:

%variable_name%

მიზანია მიუთითოს ის ფაქტი, რომ Cmd.exe პირდაპირ უნდა წვდომა იყოს კონკრეტული ცვლადის მნიშვნელობებზე. პერსონაჟების შედარების პროცედურა არ განხორციელდება. მნიშვნელოვანია გავითვალისწინოთ ის ფაქტი, რომ თავად ჩანაცვლება არ განიხილება რეკურსიულად. შემოწმება ტარდება მხოლოდ ერთხელ.

cmd.exe გარსის გარემო განისაზღვრება ცვლადებით, რომლებიც აკონტროლებენ გარსის და ოპერაციული სისტემის ქცევას.

შესაძლებელია გარსის გარემოს ან მთელი ოპერაციული სისტემის გარემოს ქცევის განსაზღვრა ორი ტიპის გარემოს ცვლადის გამოყენებით: სისტემა და ლოკალური.

სისტემის გარემოს ცვლადები განსაზღვრავს გლობალური ოპერაციული სისტემის გარემოს ქცევას, ხოლო ადგილობრივი გარემოს ცვლადები განსაზღვრავს გარემოს ქცევას cmd.exe-ის მოცემულ ინსტანციაში.

სისტემის გარემოს ცვლადები ნაგულისხმევად არის განსაზღვრული ოპერაციულ სისტემაში და ხელმისაწვდომია Windows-ის ყველა პროცესისთვის და ადმინისტრატორის პრივილეგიების მქონე მომხმარებლებს შეუძლიათ შეცვალონ ეს ცვლადები. ეს ცვლადები ყველაზე ხშირად გამოიყენება შესვლის სკრიპტებში.

ადგილობრივი გარემოს ცვლადები ხელმისაწვდომია, როდესაც მომხმარებელი, ვისთვისაც ისინი შეიქმნა, არის შესული. ადგილობრივი ცვლადები რეესტრის სკიდან HKEY_CURRENT_USERმოქმედებს მხოლოდ მიმდინარე მომხმარებლისთვის, მაგრამ განსაზღვრავს გლობალური ოპერაციული სისტემის გარემოს ქცევას.

ცვლადის ტიპების სია პრიორიტეტის კლებადობით.

  1. ჩამონტაჟებული სისტემის ცვლადები
  2. Registry hive სისტემის ცვლადები HKEY_LOCAL_MACHINE
  3. რეესტრის hive ადგილობრივი ცვლადები HKEY_CURRENT_USER
  4. ყველა გარემოს ცვლადი და ბილიკი ჩამოთვლილია ფაილში Autoexec.bat.
  5. ყველა გარემოს ცვლადი და ბილიკი მითითებულია შესვლის სკრიპტში (თუ ეს არის).
  6. ცვლადები, რომლებიც გამოიყენება ინტერაქტიულად სკრიპტში ან სერიულ ფაილში

ბრძანების ჭურვიში, cmd.exe-ის თითოეული ინსტანცია მემკვიდრეობით იღებს მისი მშობელი აპლიკაციის გარემოს და, შესაბამისად, შეგიძლიათ შეცვალოთ ცვლადები ახალ cmd.exe გარემოში, რაც გავლენას არ მოახდენს მშობელი აპლიკაციის გარემოზე.

აქ არის სისტემური და ადგილობრივი გარემოს ცვლადების სია Windows XP-ისთვის.

ცვლადი

აღწერა

%ALLUSERSPROFILE%

ადგილობრივი

აბრუნებს "ყველა მომხმარებლის" პროფილის განთავსებას.

ადგილობრივი

აბრუნებს აპლიკაციის მონაცემების ნაგულისხმევ მდებარეობას.

ადგილობრივი

აბრუნებს გზას მიმდინარე საქაღალდეში.

ადგილობრივი

აბრუნებს ბრძანების სტრიქონს, რომელიც გამოიყენებოდა Cmd.exe-ის ამ ინსტანციის გასაშვებად.

სისტემა

აბრუნებს მიმდინარე ბრძანების პროცესორის გაფართოებების ვერსიის ნომერს.

სისტემა

აბრუნებს კომპიუტერის სახელს.

სისტემა

აბრუნებს შესრულებული ბრძანების გარსის გზას.

სისტემა

აბრუნებს მიმდინარე მონაცემებს. იყენებს იმავე ფორმატს, როგორც ბრძანება თარიღი/თ. შექმნილია Cmd.exe ბრძანებით.

სისტემა

აბრუნებს ბოლო გამოყენებული ბრძანების შეცდომის კოდს. ნულის გარდა სხვა მნიშვნელობა ჩვეულებრივ მიუთითებს შეცდომაზე.

სისტემა

აბრუნებს ადგილობრივი სამუშაო სადგურის დისკის სახელს, რომელიც დაკავშირებულია მომხმარებლის მთავარ დირექტორიასთან. დააყენეთ ძირითადი დირექტორიას ადგილმდებარეობის მიხედვით. მომხმარებლის მთავარი დირექტორია მითითებულია Local Users and Groups snap-in-ში.

სისტემა

აბრუნებს სრულ გზას მომხმარებლის სახლის დირექტორიაში. დააყენეთ ძირითადი დირექტორიას ადგილმდებარეობის მიხედვით. მომხმარებლის მთავარი დირექტორია მითითებულია Local Users and Groups snap-in-ში.

სისტემა

აბრუნებს ქსელის გზას მომხმარებლის საერთო საშინაო დირექტორიაში. დააყენეთ ძირითადი დირექტორიას ადგილმდებარეობის მიხედვით. მომხმარებლის მთავარი დირექტორია მითითებულია Local Users and Groups snap-in-ში.

ადგილობრივი

აბრუნებს დომენის კონტროლერის სახელს, რომელმაც მოახდინა მიმდინარე სესიის ავთენტიფიკაცია.

%NUMBER_OF_PROCESSORS%

სისტემა

განსაზღვრავს კომპიუტერზე დაინსტალირებული პროცესორების რაოდენობას.

სისტემა

აბრუნებს ოპერაციული სისტემის სახელს. Windows 2000-ის გამოყენებისას ოპერაციული სისტემის სახელი გამოჩნდება Windows_NT.

სისტემა

განსაზღვრავს ძიების გზას შესრულებადი ფაილებისთვის.

სისტემა

აბრუნებს ფაილების გაფართოებების სიას, რომლებიც ითვლება შესრულებად ოპერაციული სისტემის მიერ.

%PROCESSOR_ARCHITECTURE%

სისტემა

აბრუნებს პროცესორის არქიტექტურას. მნიშვნელობები: x86, IA64.

%PROCESSOR_IDENTFIER%

სისტემა

აბრუნებს პროცესორის აღწერას.

%PROCESSOR_LEVEL%

სისტემა

აბრუნებს კომპიუტერზე დაინსტალირებული პროცესორის მოდელის ნომერს.

%PROCESSOR_REVISION%

სისტემა

აბრუნებს პროცესორის რევიზიის ნომერს.

ადგილობრივი

აბრუნებს ბრძანების სტრიქონის ვარიანტებს მიმდინარე თარჯიმნისთვის. შექმნილია Cmd.exe ბრძანებით.

სისტემა

აბრუნებს თვითნებურ ათობითი რიცხვს 0-დან 32767-მდე. შექმნილია Cmd.exe ბრძანებით.

სისტემა

აბრუნებს დისკის სახელს, რომელიც შეიცავს Windows XP root დირექტორიას (ანუ სისტემის დირექტორიას).

სისტემა

აბრუნებს Windows XP სისტემის დირექტორიას ადგილმდებარეობას.

სისტემა და მომხმარებელი

აბრუნებს აპლიკაციების მიერ გამოყენებულ ნაგულისხმევ დროებით საქაღალდეებს, რომლებიც ხელმისაწვდომია შესული მომხმარებლებისთვის. ზოგიერთ აპლიკაციას სჭირდება TEMP ცვლადი, ზოგისთვის საჭიროა TMP ცვლადი.

სისტემა

აბრუნებს მიმდინარე დროს. იყენებს იმავე ფორმატს, როგორც ბრძანება დრო/ტ. შექმნილია Cmd.exe ბრძანებით.

ადგილობრივი

აბრუნებს დომენის სახელს, რომელიც შეიცავს მომხმარებლის ანგარიშების სიას.

ადგილობრივი

აბრუნებს შესული მომხმარებლის სახელს.

ადგილობრივი

აბრუნებს პროფილის განთავსებას მიმდინარე მომხმარებლისთვის.

სისტემა

აბრუნებს ოპერაციული სისტემის დირექტორიას ადგილმდებარეობას.

აყენებს, შლის და ნახულობს გარემოს ცვლადებს. გამოძახებულია პარამეტრების გარეშე, ბრძანება კომპლექტიაჩვენებს კომპლექტი გარემოს ცვლადების სიას და მათ მნიშვნელობებს.

Სინტაქსი

კომპლექტი [[/ა [გამოხატულება]] [/გვ [ცვლადი = ]] ხაზი]

Პარამეტრები

/a მიუთითებს, რომ პარამეტრი ხაზიარის გამოთვლილი რიცხვითი გამოხატულება. /p ადგენს მნიშვნელობას ცვლადიშეყვანის ხაზი. ცვლადი განსაზღვრავს ცვლადის სახელს, რომლის მნიშვნელობის დაყენება ან შეცვლა გსურთ. string ადგენს სტრიქონის მნიშვნელობას მითითებული ცვლადისთვის. /? აჩვენებს დახმარებას ბრძანების ხაზზე.

შენიშვნები

  • ბრძანების გამოყენებით კომპლექტიაღდგენის კონსოლში

    გუნდი კომპლექტისხვა პარამეტრებით ხელმისაწვდომია აღდგენის კონსოლში.

  • სპეციალური სიმბოლოების გამოყენება

    სიმბოლოები<, >, |, &, ^ არის სპეციალური გარსის სიმბოლოები, თქვენ ან მათ წინ უნდა დააყენოთ გაქცევის სიმბოლო (^) ან ჩასვათ ისინი ბრჭყალებში, როდესაც იყენებთ სიმბოლოებს პარამეტრში. ხაზი(Მაგალითად, " შინაარსი_ხაზი & სიმბოლო" ). როდესაც ციტირებთ სტრიქონს, რომელიც შეიცავს სპეციალურ სიმბოლოებს, ციტატები განიხილება გარემოს ცვლადის მნიშვნელობის ნაწილად.

  • გარემოს ცვლადების გამოყენება

    გარემოს ცვლადები გამოიყენება გარკვეული სერიული ფაილების და პროგრამების მუშაობის გასაკონტროლებლად და Windows XP-ისა და MS-DOS ქვესისტემის მუშაობის გასაკონტროლებლად. გუნდი კომპლექტიხშირად გამოიყენება Autoexec.nt ფაილში გარემოს ცვლადების დასაყენებლად.

  • გარემოს მიმდინარე პარამეტრების ჩვენება

    როცა გუნდი კომპლექტიდარეკვა პარამეტრების გარეშე, ეკრანზე გამოჩნდება მიმდინარე პარამეტრები. როგორც წესი, ეს პარამეტრები მოიცავს COMSPEC და PATH ცვლადებს, რომლებიც გამოიყენება დისკზე პროგრამების მოსაძებნად. Windows-ის მიერ გამოყენებული გარემოს ორი სხვა ცვლადი არის PROMPT და DIRCMD.

  • პარამეტრების გამოყენება

    როდესაც აზუსტებთ მნიშვნელობებს ცვლადისა და სტრიქონისთვის, ცვლადის მნიშვნელობა ემატება გარემოს და სტრიქონი აისახება ამ ცვლადთან. თუ ცვლადი უკვე არსებობს, ახალი მნიშვნელობა ცვლის ძველ მნიშვნელობას.

    თუ გუნდში კომპლექტითუ მითითებულია მხოლოდ ცვლადის სახელი და ტოლობის ნიშანი (მნიშვნელობის გარეშე), ნებისმიერი მნიშვნელობა აღარ მიენიჭება გარემოს ცვლადს, რაც ექვივალენტურია გარემოს ცვლადის წაშლისა.

  • გამოყენება /ა

    შემდეგი ცხრილი აჩვენებს ოპერატორებს, რომლებიც მხარს უჭერენ პარამეტრს /ა, პრიორიტეტის კლებადობით.

    ლოგიკური ოპერატორების (&& ||) ან დარჩენილი ოპერატორის (%) გამოყენებისას სტრიქონის გამოხატულება ჩადეთ ბრჭყალებში. ნებისმიერი არაციფრული სტრიქონი გამონათქვამში განიხილება როგორც გარემოს ცვლადის სახელები, რომელთა მნიშვნელობები გარდაიქმნება რიცხვებად დამუშავებამდე. თუ მითითებულია გარემოს ცვლადის სახელი, რომელიც არ არის განსაზღვრული მიმდინარე გარემოში, მას ენიჭება ნულის მნიშვნელობა, რაც საშუალებას იძლევა შესრულდეს არითმეტიკული ოპერაციები გარემოს ცვლადის მნიშვნელობებზე მნიშვნელობის მისაღებად %–ის გამოყენების გარეშე.

    ბრძანების შესრულებისას კომპლექტი /აბრძანების სტრიქონიდან ბრძანების სკრიპტის გარეთ, იბეჭდება გამოხატვის საბოლოო მნიშვნელობა.

    რიცხვითი მნიშვნელობები არის ათობითი რიცხვები, გარდა რიცხვებისა, რომლებსაც აქვთ პრეფიქსი 0x თექვსმეტობითი რიცხვებისთვის და 0 რვადი რიცხვებისთვის. ამდენად, 0x12 იგივეა, რაც 18 და 022. ოქტალური წარმოდგენა მოითხოვს ზრუნვას. მაგალითად, 08 და 09 არ არის სწორი, რადგან 8 და 9 არ არის რვა რიცხვები.

  • გამოყენება /გვ

    გამოიყენება მაშინ, როდესაც არ გჭირდებათ ბრძანების ხაზის ჩართვა.

  • დაგვიანებული გარემოს ცვლადის გაფართოების მხარდაჭერა

    დაემატა მხარდაჭერა გარემოს ცვლადის გაფართოებისთვის დაგვიანებით. ეს მხარდაჭერა ნაგულისხმევად გამორთულია, შეგიძლიათ ჩართოთ ან გამორთოთ ის ბრძანების გამოყენებით cmd /v.

  • ბრძანების გაფართოებებთან მუშაობა

    ბრძანების გაფართოებით ჩართულია (ნაგულისხმევი) და ბრძანება გაშვებული კომპლექტიმნიშვნელობების გარეშე, ნაჩვენებია ყველა მიმდინარე გარემოს ცვლადი. თუ ბრძანება შესრულებულია კომპლექტიმნიშვნელობით, ნაჩვენებია ამ მნიშვნელობის შესაბამისი ცვლადები.

  • ბრძანების გამოყენებით კომპლექტისურათების ფაილებში

    სურათების ფაილების შექმნისას გამოიყენეთ ბრძანება კომპლექტიცვლადების შექმნა და მათი რიცხვითი ცვლადების გამოყენება %0 ადრე %9 . თქვენ ასევე შეგიძლიათ გამოიყენოთ ცვლადები საწყისიდან %0 ადრე %9 როგორც შეყვანა ბრძანებისთვის კომპლექტი.

  • ბრძანების ცვლადებზე წვდომა კომპლექტიპაკეტის პროგრამებიდან

    ცვლადის წვდომისას სერიული პროგრამიდან, ცვლადის სახელი უნდა იყოს გარშემორტყმული პროცენტული ნიშნებით (%). მაგალითად, თუ ცვლადი BAUD იქმნება სერიულ პროგრამაში, ჩანაცვლების პარამეტრი შეიძლება ასოცირდებოდეს მას სახელის გამოყენებით. %baud%ბრძანების ხაზზე.

მაგალითები

გარემოს ცვლადის დასაყენებლად, სახელად TEST^1, შეიყვანეთ ბრძანება:

დააყენეთ testVar=test^^1

გარემოს ცვლადის დასაყენებლად სახელად TEST&1, შეიყვანეთ ბრძანება:

დააყენეთ testVar=test^&1

ბრძანების ცვლადის მნიშვნელობა კომპლექტიგანსაზღვრავს ყველაფერს, რაც მოჰყვება ტოლობის ნიშანს (=). შესვლისას:

დააყენეთ testVar = ტესტი ^ 1"

შედეგი იქნება შემდეგი:

testVar = ტესტი ^ 1

INCLUDE გარემოს ცვლადის დასაყენებლად ისე, რომ ის ასოცირდება სტრიქონთან C:\Inc (C დისკზე Inc დირექტორია), შეგიძლიათ გამოიყენოთ შემდეგი ბრძანება:

ნაკრები მოიცავს=c:\inc

სტრიქონი C:\Inc შეიძლება გამოყენებულ იქნას სერიულ ფაილებში INCLUDE სახელის პროცენტის ნიშნებში (%) ჩასმით. მაგალითად, სერიულ ფაილში შეგიძლიათ გამოიყენოთ შემდეგი ბრძანება, რომ დაბეჭდოთ დირექტორიას შიგთავსი, რომელზეც მითითებულია INCLUDE გარემოს ცვლადი:

ბრძანების შესრულებისას ხაზი %შეიცავს%შეიცვლება სტრიქონით C:\Inc.

თქვენ ასევე შეგიძლიათ გამოიყენოთ ბრძანება კომპლექტიჯგუფურ პროგრამაში, რომელიც ამატებს ახალ დირექტორიას PATH გარემოს ცვლადში. Მაგალითად:

@echo გამორთულია
rem ADDPATH.BAT ამატებს ახალ დირექტორიას
rem to გზა გარემოს ცვლადი.
დაყენებული ბილიკი=%1;%გზა%
კომპლექტი

ბრძანების გაფართოებით ჩართულია (ნაგულისხმევი) და ბრძანება გაშვებული კომპლექტიმნიშვნელობით, ნაჩვენებია მნიშვნელობის შესაბამისი გარემოს ყველა ცვლადი. მაგალითად, ბრძანების ხაზში შესვლისას: კომპლექტი გვ, შედეგი იქნება შემდეგი:

გზა=C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_IDENTIFIER=x86 Family 6 Model 8 Step 1, GenuineIntel
PROCESSOR_LEVEL=6
PROCESSOR_REVISION=0801
ProgramFiles=C:\Program Files
PROMPT=$P$G

Set ბრძანებით მუშაობის ზოგიერთი ტექნიკა და მახასიათებელი შეგიძლიათ იხილოთ არითმეტიკული მონაცემთა დამუშავების განყოფილებაში.

კითხვებისთვის, დისკუსიებისთვის, კომენტარებისთვის, წინადადებებისთვის და ა.შ. შეგიძლიათ გამოიყენოთ ამ საიტის ფორუმის განყოფილება (რეგისტრაცია აუცილებელია).



გაქვთ შეკითხვები?

შეატყობინეთ შეცდომას

ტექსტი, რომელიც გაეგზავნება ჩვენს რედაქტორებს: