Ažurirajte varijable sustava u cmd-u. Prikaz vrijednosti varijable ERRORLEVEL na ekranu. Kašnjenja u batch datotekama

Okruženje ljuske Cmd.exe definirano je varijablama koje kontroliraju ponašanje ljuske i operativnog sustava. Možete definirati ponašanje okruženja ljuske ili cijelog okruženja operativnog sustava koristeći dvije vrste varijabli okruženja: sistemske i lokalne. Varijable okruženja sustava definiraju ponašanje globalnog okruženja operativnog sustava. Lokalne varijable okoline kontroliraju ponašanje okoline u određenoj instanci Cmd.exe.

Varijable okruženja sustava unaprijed su definirane u operativnom sustavu i dostupne su svim procesima Windows XP. Samo korisnici s administrativnim ovlastima mogu mijenjati ove varijable. Ove se varijable najčešće koriste u skriptama za prijavu.

Lokalne varijable okoline dostupne su samo kada je korisnik za kojeg su stvorene prijavljen. Lokalne varijable iz košnice HKEY_CURRENT_USER vrijede samo za trenutnog korisnika, ali definiraju ponašanje globalnog okruženja operacijskog sustava.

U sljedeći popis predstavili Različite vrste varijable u silaznom redoslijedu prioriteta.

  1. Ugrađene varijable sustava
  2. Varijable sustava košnice HKEY_LOCAL_MACHINE
  3. Lokalne varijable košnice HKEY_CURRENT_USER
  4. Sve varijable okoline i staze navedene su u datoteci Autoexec.bat.
  5. Sve varijable okoline i staze navedene su u skripti za prijavu (ako postoji).
  6. Varijable koje se interaktivno koriste u skripti ili batch datoteci

U naredbena ljuska Svaka instanca Cmd.exe nasljeđuje okruženje svoje roditeljske aplikacije. Stoga možete promijeniti varijable u novom okruženju Cmd.exe bez utjecaja na okruženje nadređene aplikacije.

Sljedeća tablica pruža popis varijabli sustava i lokalne okoline za Windows XP.

Varijabilna

Opis

%ALLUSERSPROFILE%

Lokalni

Vraća položaj profila "Svi korisnici".

Lokalni

Vraća zadanu lokaciju za podatke aplikacije.

Lokalni

Vraća putanju do trenutne mape.

Lokalni

Vraća naredbeni niz koji je korišten za pokretanje ove instance Cmd.exe.

Sustav

Vraća broj verzije trenutna proširenja rukovatelj naredbama.

Sustav

Vraća naziv računala.

Sustav

Vraća putanju do naredbene ljuske koja se izvršava.

Sustav

Vraća trenutne podatke. Koristi isti format kao naredba datum/t. Stvoreno naredbom Cmd.exe.

Sustav

Vraća kod pogreške zadnje korištene naredbe. Vrijednost različita od nule obično označava pogrešku.

Sustav

Vraća naziv lokalnog pogona radna stanica povezan s korisničkim matičnim imenikom. Postavite na temelju lokacije glavnog imenika. Korisnikov matični direktorij naveden je u dodatku " Lokalni korisnici i grupe."

Sustav

Povratak puni put u korisnički matični imenik. Postavite na temelju lokacije glavnog imenika. Korisnikov matični direktorij naveden je u dodatku Lokalni korisnici i grupe.

Sustav

Vraća mrežni put do korisničkog dijeljenog matičnog direktorija. Postavite na temelju lokacije glavnog imenika. Korisnikov matični direktorij naveden je u dodatku Lokalni korisnici i grupe.

Lokalni

Vraća naziv kontrolera domene koji je autentificirao trenutnu sesiju.

%NUMBER_OF_PROCESSORS%

Sustav

Određuje broj procesora instaliranih na računalu.

Sustav

Vraća naziv operativnog sustava. Kada koristite Windows 2000, naziv operativnog sustava pojavljuje se kao Windows_NT.

Sustav

Određuje put pretraživanja za izvršne datoteke.

Sustav

Vraća popis ekstenzija datoteka koje operativni sustav smatra izvršnima.

%PROCESSOR_ARCHITECTURE%

Sustav

Vraća arhitekturu procesora. Vrijednosti: x86, IA64.

%PROCESSOR_IDENTFIER%

Sustav

Vraća opis procesora.

%PROCESSOR_LEVEL%

Sustav

Vraća broj modela procesora instaliranog na računalu.

%PROCESSOR_REVISION%

Sustav

Vraća broj revizije procesora.

Lokalni

Vraća opcije naredbenog retka za trenutni tumač. Stvoreno naredbom Cmd.exe.

Sustav

Vraća proizvoljni decimalni broj od 0 do 32767. Stvoreno naredbom Cmd.exe.

Sustav

Vraća naziv pogona koji sadrži korijenski direktorij sustava Windows XP (tj. sistemski direktorij).

Sustav

Vraća lokaciju sustava Windows imenik XP.

Sustav i korisnik

Vraća zadane privremene mape koje koriste aplikacije koje su dostupne prijavljenim korisnicima. Neke aplikacije zahtijevaju varijablu TEMP, druge zahtijevaju varijablu TMP.

Sustav

Vraća trenutno vrijeme. Koristi isti format kao naredba vrijeme/t. Stvoreno naredbom Cmd.exe.

Lokalni

Vraća naziv domene koja sadrži popis korisničkih računa.

Lokalni

Vraća ime prijavljenog korisnika.

Lokalni

Vraća položaj profila trenutnog korisnika.

Sustav

Vraća lokaciju direktorija operativnog sustava.


0.00 (1 )

Opći pristup.

Naredbene datoteke su tekstualne datoteke s ekstenzijom šišmiš ili cmd, čije linije predstavljaju naredbe ili nazive izvršnih datoteka. Kada pokrenete batch datoteku, kontrolu preuzima naredbeni procesor operativnog sustava (često se naziva i tumač naredbi), koji sekvencijalno čita i tumači retke u batch datoteci. Za Windows9X to je učinjeno naredba.com, za WinNT/2K/XP - cmd.exe. Linije skupne datoteke mogu sadržavati naredbe iz samog procesora naredbi (FOR, GOTO, IF itd.) ili nazive izvršnih modula (net.exe, regedit.exe, win.com itd.). Na operativnim sustavima WinNT/2K/XP možete dobiti kratka informacija prema sastavu naredbi pomoću naredbenog retka:

ili posebnom naredbom:

POMOĆ Ime naredbe

Za prikaz teksta pomoći ne na zaslonu, već u datoteci, možete koristiti izlazno preusmjeravanje . Kada koristite naredbeni redak, zadani ulazni uređaj je tipkovnica, a izlazni uređaj je zaslon, no ti se uređaji mogu ponovno mapirati pomoću znakova za preusmjeravanje

< - preusmjeravanje unosa

> - preusmjeravanje izlaza (ili > > - preusmjeravanje na postojeću datoteku, kada se izlazni podaci dodaju na kraj datoteke.)

Za izlaz toka podataka naredbePOMOZITEu datoteci help.txt naredbeni redak će biti sljedeći:

POMOĆ > pomoć.txt

Za prikaz pomoći za naredbu GOTO u datoteci goto.txt:

POMOĆ GOTO > goto.txt

Korištenje varijabli okruženja.

U skupne datoteke može, i često treba, koristiti varijable okoline - varijable čije vrijednosti karakteriziraju okruženje u kojem se izvršava naredba ili batch datoteka. Vrijednosti varijabli okoline generiraju se kada se OS podigne i kada se korisnik registrira u sustavu, a mogu se postaviti i pomoću naredbePOSTAVITE, čiji je format:

SET [varijabla=[string]]

varijabla Naziv varijable okoline.

crta Niz znakova dodijeljen navedenoj varijabli.

Na primjer, naredbeni redak

SET mynane=Vasja

će dodati varijablu myname koja ima vrijednost Vasya.

Možete dobiti vrijednost varijable u programima i skupnim datotekama korištenjem njenog imena okruženog znakovima postotka ( %) . Na primjer naredba

prikazat će riječ vrijeme i naredbu

prikazat će vrijednost vremenske varijable, koja uzima vrijednost trenutnog vremena.

I naredbeni redak

SET PATH=C:myprog;%path%

će dodati na put pretraživanja izvršni programi, opisan vrijednošću varijable PATH, direktorij C:myprog

Izvođenje naredbe SET bez parametara uzrokuje prikaz trenutnih vrijednosti varijabli na ekranu, u obliku:

NUMBER_OF_PROCESSORS=1 - broj procesora

OS=Windows_NT - vrsta OS-a

Path=E:WINDOWSsystem32;E:WINDOWS;E:Program FilesFar - put traženja izvršnih datoteka.

PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH - ekstenzije za izvršne datoteke.

PROCESSOR_ARCHITECTURE=x86 - arhitektura procesora.

PROCESSOR_IDENTIFIER=x86 Family 6 Model 8 Korak 1, AuthenticAMD - identifikator procesora.

PROCESSOR_LEVEL=6 - razina procesora (broj modela).

PROCESSOR_REVISION=0801 - verzija procesora.

ProgramFiles=E:Program Files - put do mape "Program Files".

PROMPT=$P$G - format odzivnika naredbenog retka $P - staza za trenutni imenik$G - znak ">".

SystemDrive=E: - slovo pogona sustava.

SystemRoot=E:WINDOWS - direktorij Windows OS-a.

Vrijednosti nekih varijabli ne vraća naredba SET. Ovo su varijable čije se vrijednosti dinamički mijenjaju:

%CD% - Uzima vrijednost niza trenutnog imenika.

%DATE% - Prihvaća vrijednost trenutni datum.

%TIME% - Prihvaća trenutnu vrijednost vremena.

%RANDOM% - Uzima slučajnu vrijednost decimalni broj u rasponu 1 -32767.

%ERRORLEVEL% - Prihvaća trenutnu vrijednost izlaznog koda zadatka ERRORLEVEL

%CMDEXTVERSION% - Uzima vrijednost verzije procesora naredbi CMD.EXE za proširenu obradu naredbi.

%CMDCMDLINE% - Uzima vrijednost linije koja je pozvala ljusku.

Za pregled vrijednosti varijable možete koristiti naredbeni redak:

ECHO %varijabla%

Ulazni parametri za batch datoteku.

Moguće je proslijediti parametre naredbenog retka u naredbenu datoteku i koristiti njihove vrijednosti u izjavama u samoj naredbenoj datoteci.

BAT datoteka< параметр1 > , < параметр2 >, ... < параметрN >

U samoj batch datoteci, prvi parametar će biti dostupan kao varijabla %1 , drugi - %2 i tako dalje. Sam naziv batch datoteke dostupan je kao varijabla %0 . Na primjer, kreirajmo batch datoteku čiji će zadatak biti prikazati vrijednosti unesenih parametara na ekranu. Obično je naredba koja se koristi za prikaz teksta

JEKA< текст >

Međutim, ako se tekst zamijeni s %1, vraća se prvi parametar, s %2 - drugi, itd.

Stvorite datoteku parm.bat sa sljedećim sadržajem:

echo Prvi parametar=%1

echo Drugi parametar=%2

echo Treći parametar = %3

i pokrenite ga sljedećom naredbom:

parm.bat PRVI drugi “dvije riječi”

Nakon što ga izvršite, shvatit ćete kako radi i da parametri s razmacima moraju biti u dvostrukim navodnicima. Kako bi obrađeni naredbeni procesor linije nisu bile prikazane na ekranu, možete koristiti naredbuJEKA ISKLJUČENA, stavljajući ga u prvi redak batch datoteke. Da bi linija u batch datoteci bila zanemarena od strane ljuske, postavite je na početak retkaR.E.M.< пробел > . Na ovaj način možete postaviti komentare, koji su često korisni u velikim paketnim datotekama:

rem ECHO OFF isključuje način prikaza sadržaja redaka naredbene datoteke na ekranu

REM će samo prikazati rezultat njihovog izvršenja.

echo Prvi parametar=%1

echo Drugi parametar=%2

echo Treći parametar = %3

Pokušajte zamijeniti ECHO OFF sa @ECHO OFF - rezultat govori sam za sebe. Redak koji isključuje izlazni način više se ne prikazuje na ekranu.

Prijelazi i oznake.

U batch datotekama možete koristiti naredbe uvjetnog skoka koje mijenjaju logiku svog rada ovisno o ispunjenju određenih uvjeta. Da bismo ilustrirali kako koristiti uvjetne skokove, stvorimo skupnu datoteku čija će svrha biti dodijeliti unaprijed određeno slovo pogona prijenosni medij, koji će se koristiti kao flash pogoni. Uvjeti su sljedeći - postoje 2 flash pogona, od kojih bi jedan trebao biti vidljiv u Exploreru kao pogon X:, a drugi - kao pogon Y: bez obzira na kojem USB priključak povezani su. Pretpostavit ćemo da pravi kotači može se povezati kao F: ili G: Identificirat ćemo diskove po prisutnosti datoteke s određenim imenom (bolje je učiniti takvu datoteku skrivenom u korijenskom direktoriju i nazvati je neuobičajeno):

Flashd1.let - na prvom disku

Flashd2.let - na drugom

Oni. Svrha skupne datoteke je provjeriti prisutnost izmjenjivi diskovi F: I G: datoteke Flashd1.let ili Flashd2.let i, ovisno o tome koji je prisutan, dodijelite slovo pogona X: ili Y:

Za traženje datoteke na disku koristite naredbuAKO POSTOJI:

AKO POSTOJI naredba za naziv datoteke

Najlakši način da ga koristite kao naredbu jeSUBST, koji odgovara nazivu pogona i direktoriju.

SUBST X: C: - stvara virtualni disk X:, čiji će sadržaj biti korijenski direktorij pogona C:

Napravite paketnu datoteku setXY.bat sa sljedećim redovima:

Nakon izvršavanja takve datoteke, imat ćete pogone X: i Y: Ali ako ponovno pokrenete takvu datoteku, naredba SUBST prikazat će poruku o pogrešci - nakon svega, pogoni X: i Y: već postoje.

Preporučljivo je zaobići izvršavanje SUBST-a ako su virtualni diskovi X: i Y: već stvoreni (ili ih izbrisati pomoću SUBST-a s -d opcijom prije montiranja). Izmijenite batch datoteku pomoćuIĆI- prijenos kontrole na liniju skupne datoteke prema naljepnici.

Oznaka GOTO

Oznaka mora biti u zasebnom retku i započeti dvotočkom. Izmijenimo našu batch datoteku kako ne bismo dobivali poruke o pogrešci:

REM ako X ne postoji - onda idite na oznaku SETX

AKO NE POSTOJI X: GOTO SETX

REM ako X postoji: - prijeđimo na provjeru prisutnosti Y:

AKO POSTOJI G:flashd1.let SUBST X: G:

AKO POSTOJI F:flashd1.let SUBST X: F:

REM ako Y: postoji - dovršite batch datoteku.

AKO POSTOJI Y: IDITE NA IZLAZ

AKO POSTOJI G:flashd2.let SUBST Y: G:

AKO POSTOJI F:flashd2.let SUBST Y: F:

REM izlaz iz skupne datoteke

Poruka o pogrešci SUBST je nestala. Znakovi grešaka prilikom izvršavanja naredbi mogu se pratiti u samoj naredbenoj datoteci analizom varijableERRORLEVEL, čija se vrijednost formira tijekom izvođenja većine programa. ERRORLEVEL je 0 ako je program završio bez grešaka i 1 ako je došlo do greške. Mogu postojati i druge vrijednosti ako su navedene u programu koji se izvršava.

Također možete koristiti batch datoteku kao naredbu u retku u batch datoteci. Štoviše, za prijenos i povratak natrag na točku izvršenja pozivne batch datoteke koristi se naredbaPOZIV. Kreirajmo naredbenu datoteku test.bat sa sljedećim sadržajem:

ECHO Poziv 1.bat

ECHO Povratak.

I 1.bat datoteka koja sadrži naredbuPAUZA,obustava izvršenja batch datoteke dok se ne pritisne bilo koja tipka.

Prilikom izvršavanja test.bat, na ekranu će se prikazati poruka

Poziv 1.bat

a upravljanje će dobiti 1.bat s naredbom za pauzu. Nakon pritiska tipke na tipkovnici, kontrola će biti dana naredbenom retku "ECHO Return." i to će biti prikazano na ekranu

Ako uklonite CALL iz test.bat, tada se povratak iz datoteke 1.bat neće izvršiti. Usput, prijenosom kontrole na batch datoteku, možete je organizirati u petlju. Pokušajte dodati sljedeći redak na kraj test.bat datoteke:

Možete izaći iz petlje batch datoteke pritiskom na kombinaciju CTRL-Break. Moguće je koristiti naredbu CALL za pozivanje procedure unutar batch datoteke. U ovom slučaju ime se ne koristi kao argument vanjska datoteka, i oznaka:
....
poziv:proc1
....
:proc1
....
Izlaz
....

Stvaranje datoteka.

U sustavu Windows ne postoji posebna naredba za stvaranje datoteke, ali možete jednostavno bez nje na nekoliko načina:

Kopiranje iz konzole u datoteku

COPY CON myfile.txt

Kada se ova naredba izvrši, podaci s tipkovnice (CON uređaja) bit će zapisani u datoteku myfile.txt. Pritisnite F6 ili CTRL-Z kombinacije dovršit će izlaz.

Preusmjeravanje izlaza

ECHO 1 > moja datoteka.txt

Pokretanje ove naredbe stvorit će datoteku myfile.txt koja sadrži znak "1"

Kombinacija preusmjeravanja ulaza i izlaza:

COPY CON > moja datoteka.txt< xyz

Prilikom izvođenja ove naredbe, kao i u prvom slučaju, koristi se kopiranje s konzole u datoteku, ali umjesto unosa s tipkovnice koristi se unos s nepostojećeg uređaja xyz. Sustav će prikazati poruku da takav uređaj ne postoji, ali će prazna datoteka myfile.txt biti uspješno kreirana.
Vrlo jednostavna opcija je kopiranje s fiktivnog uređaja s imenom nula podnijeti.
kopiraj null myfile.txt

Ako često morate stvarati prazne datoteke, možete pripremiti vlastitu batch datoteku (na primjer - newfile.bat ili, još bolje, - nf.bat), i nazvati stvorena datoteka proslijedite ga kao parametar pri pokretanju.

Sadržaj datoteke:

Postavite ovu skupnu datoteku u svoj sistemski direktorij (C:windowssystem32 ili bilo koji drugi na vašem PATH putu pretraživanja).

Naredbeni redak:

nova datoteka.bat moja datoteka.txt

Ili

nf.bat moja datoteka.txt

Ili
nf moja datoteka.txt

Evo vašeg tima nf za stvaranje prazna datoteka na naredbenoj liniji.

Dodjeljivanje istog slova pogona izmjenjivom pogonu.

Cilj je osigurati da prijenosni USB pogon (flash disk) uvijek bude dostupan pod istim slovom, bez obzira na kojem se računalu koristi i kako je povezan. Da bismo ga riješili, koristit ćemo naredbu SUBST već spomenutu gore. Odaberimo željeno slovo za prijenosni disk, na primjer - X. Naziv diska s kojeg je pokrenuta batch datoteka dostupan je kao varijabla %~d0. Stvorite skupnu datoteku sa sljedećim sadržajem:
@echo isključen
subst X: %~d0
što znači stvoriti virtualni disk X:, koji je povezan sa fizički disk, odakle je pokrenuta batch datoteka.
Dodatni uvid u vrijednosti zamjene za varijablu %0 može se dobiti iz sljedeće batch datoteke:

@echo isključen
OBRADA ODJEKA DATOTEKE - %0
ECHO Datum/vrijeme kreiranja/modifikacije batch datoteke - %~t0
Putanja paketne datoteke ECHO - "%~f0"
ECHO disk s naredbenom datotekom - %~d0
ECHO Direktorij paketne datoteke - "%~p0"
ECHO Naziv paketne datoteke - %~n0
ECHO Batch file ekstenzija - %~x0
JEKA Kratko ime i proširenje - %~s0
ECHO Atributi paketne datoteke - %~a0
ECHO Veličina paketne datoteke - %~z0

Stvaranje generacija arhiva na temelju datuma i vremena.

Idemo riješiti sljedeći problem - potrebno je kreirati arhivu datoteka koja se nalazi u direktoriju C:Program FilesFAR. Ime arhivska datoteka treba se sastojati od trenutnog vremena (sati.minute.sekunde - HH.MM.SS.rar), i treba ga smjestiti u novi katalog, čiji se naziv mora sastojati od tekućeg datuma (dan.mjesec.godina - DD.MM.GGGG). Za arhiviranje ćemo koristiti RAR arhiver. Format pokretanja za izradu arhive:

RAR a -r< путь и имя архива > < Путь и имя архивируемых данных >

a- naredba za stvaranje arhive.
-r- ključ koji određuje arhiviranje poddirektorija (od in izvorna mapa postoje poddirektorije).

Dakle, da biste riješili problem, morate ispravno stvoriti imena i staze za RAR. Za to ćemo koristiti sljedeće faktore:

  • U paketnim datotekama možete pristupiti trenutnom datumu i trenutnom vremenu - varijablama %DATE% i %TIME%
  • U batch datotekama možete stvoriti privremene varijable pomoću naredbe SET.
  • Vrijednost privremenih varijabli može se formirati na temelju %DATE% i %TIME% izostavljanjem i (ili) zamjenom njihovih dijelova pomoću iste naredbe SET.

    Datum dobiven iz varijable %DATE% when standardne postavke regionalne postavke izgledaju ovako:
    Pon 21.01.2005- Dan u tjednu (2 znaka) - Razmak - datum (10 znakova)
    Na primjer, kreirajmo imenik pomoću naredbe MD< имя каталога >.
    Kreiramo privremenu varijablu VDATE u memoriji i dodijelimo joj vrijednost varijable okoline DATE, bez prva 3 znaka - 20.01.2005.:

    Postavi VDATE=%datum:~3%

    Napravite direktorij na disku C:, čije je ime = trenutni datum iz varijable VDATE:

    MD C:\%VDATE%
    Nakon izvršavanja ove naredbe, direktorij pod nazivom 01/20/2005 bit će kreiran na pogonu C:

    Vrijeme dobiveno iz varijable %TIME%:
    14:30:59.93 - Sati, minute, sekunde, stotinke sekunde.
    Stotinke su možda nepotrebne u nazivu arhivske datoteke. Napravite privremenu varijablu VTIME i dodijelite joj trenutno vrijeme bez zadnja 3 znaka
    postavi VTIME=%vrijeme:~0,-3%
    Sada je VTIME = 14:30:59, ali znak ":" ne može se koristiti u nazivu datoteke, pa ga zamijenimo točkom.
    postavi VTIME=%VTIME::=.%
    Varijabla VTIME će uzeti vrijednost 14.30.59 za naziv datoteke koji će poslužiti.

    Pokrenimo arhivar:

    Sada možete stvoriti skupnu datoteku sa sadržajem:

    Postavi VDATE=%datum:~3%
    md c:\%VDATE%
    postavi VTIME=%vrijeme:~0,-3%
    postavi VTIME=%VTIME::=.%
    rar a -r C:\%VDATE%\%VTIME%.rar "C:Programske datoteke daleko*.*"

    Takva skupna datoteka može se izvršiti putem automatskog učitavanja ili kao dio skripte, kada se korisnik prijavi u domenu ili korištenjem planera u određeno vrijeme, a uvijek ćete imati na raspolaganju vremenski raspoređene arhive kritičnih podataka.

    Izrada arhiva pomoću varijabli korisničkog profila.

    Ova paketna datoteka stvara arhive sadržaja mape "Moji dokumenti" korisnika Win2K/XP, smještajući ih u direktorije
    C:ARHIVMoji dokumentiKorisničkoimeDatumVrijeme

    Koriste se varijable USERPROFILE, USERNAME, WINDIR, tako da ova batch datoteka neće raditi u WIN9X. (Iako, ako želite, možete umetnuti naredbe u autoexec.bat za postavljanje vrijednosti ovih varijabli i korištenje u verziji za jednog korisnika bez gotovo ikakvih promjena). Sadržaj paketne datoteke je komentiran i ne bi trebao izazvati velike poteškoće ako razumijete prethodni primjer:

    @echo isključen
    rem Postavlja FROM varijablu - odakle uzeti podatke za arhiviranje
    postavite FROM=%USERPROFILE%Moji dokumenti
    rem Postavlja varijablu TO - gdje smjestiti arhive
    postavi TO=C:arhivMoji dokumenti\%USERNAME%
    rem Kreirajmo imenik održavanja
    md "%TO%"
    rem Formirajmo ime poddirektorija od trenutnog datuma
    sačuvaj trenutni datum sa zadanim postavkama za Win2K - pon 25.4.2005
    rem trenutni datum sa zadanim postavkama za WinXP - 25.04.2005
    rem Od sadašnjeg datuma formirat ćemo naziv poddirektorija - 25.04
    rem Standardno Windir za WinXP je C:WINDOWS, a za Win2K - C:WINNT
    IF /I %Windir% == C:WINNT GOTO Win2K
    postavi vdate=%DATE:~0.-5%
    IDITE NA SetFileName
    :Win2K
    postavi vdate=%DATE:~3.-5%
    rem Kreirajmo naziv arhivske datoteke iz trenutnog vremena - 12:00:00.99
    rem ćemo odbaciti stotinke sekunde i zamijeniti simbol: sa simbolom. Rezultat - 12.00.00
    :SetFileName
    postavi vtime=%TIME:~0,-3%
    postavi vtime=%vtime::=.%
    rem Stvorite poddirektorij za arhivsku datoteku
    md "%TO%\%VDATE%"
    rem Naredba za arhiviranje. Prekidač -r potreban je za arhiviranje s podmapama
    rem opcija za ARJ arhiver: arj a -r "%TO%\%VDATE%\%VTIME%.arj" "%FROM%*.*"
    rem Prilikom korištenja RAR arhiver:
    rar a -r "%DO%\%VDATE%\%VTIME%.rar" "%FROM%*.*"

    Izvršite naredbe prema rasporedu.

    U WIN2K/XP postoji uslužni program naredbenog retkaNA,omogućujući vam da izvršite naredbu ili batch datoteku u navedeno vrijeme na lokalnom ili udaljenom računalu. Za korištenje AT naredbe mora biti pokrenut servis Task Scheduler (obično se pokreće prema zadanim postavkama tijekom instalacije sustava).

    AT [\naziv računala] [ [kod] | /DELETE ]

    U vrijeme [\ime računala].

    [ /SVAKI:dan[,...] | /SLJEDEĆI:dan[,...]] "naredba"

    \naziv računala Naziv udaljenog računala. Ako je ovaj parametar izostavljen,

    koristi se lokalno računalo.

    kodirati Redni broj planiranog zadatka. Označeno ako trebate otkazati već zakazani zadatak pomoću tipke /izbrisati.

    /izbrisati Otkažite planirani zadatak. Ako je kod zadatka izostavljen,

    sve zadatke predviđene za navedeno

    Računalo.

    /Da Otkažite zahtjev za potvrdu kada otkažete sve

    planirane zadatke.

    vrijeme Vrijeme je za pokretanje naredbe.

    /interaktivan Dopuštanje interakcije zadataka s korisnikom,

    rad na računalu kada započne zadatak. Zadaci pokrenuti bez ovog ključa nevidljivi su korisniku računala.

    /svaki dan[,...] Zadatak se pokreće na navedene dane u tjednu ili

    mjesec. Ako je datum izostavljen, koristi se tekući dan

    /sljedeći dan[,...] Zadatak će se pokrenuti sljedećeg navedenog dana u tjednu

    (na primjer sljedeći četvrtak). Ako je datum izostavljen,

    Koristi se tekući dan u mjesecu.

    "tim" Naziv naredbe ili skupne datoteke.

    Primjeri korištenja:

    Analog "budilice" - skočni prozori s tekstom koji podsjeća na trenutni ili navedenom korisniku o potrebi da se nešto poduzme. Za slanje poruke korisniku koristimo uslužni programNET.EXE

    U 13:50 net.exe pošalji * Vrijeme je za kavu

    U 17:50 net.exe korisniku šalje vrijeme za odlazak kući

    NA \SERVERU 13:45 net.exe poslati Morate ponovno pokrenuti poslužitelj

    Pogledajte popis zakazanih zadataka:

    Brisanje već zakazanih zadataka:

    U 3 /DELETE- brisanje zadatka broj 3

    NA /DELETE /YES- brisanje svih zadataka

    “Upravljačka ploča” - “Planirani zadaci” omogućuju vam pregled, promjenu i brisanje onih koje je izradio tim NA zadaci.

    Zaustavljanje i pokretanje sistemskih usluga.

    Za zaustavljanje i pokretanje Win2K/XP usluga iz naredbenog retka koristite naredbu NET.EXE

    NET.EXE ZAUSTAVI< имя службы >

    NET.EXE START< имя службы >

    Moguće je koristiti i kratko i puno ime ("Dnscache" - kratko, "DNS klijent" - puno ime usluge). Nazivi usluga koji sadrže razmake nalaze se u dvostrukim navodnicima. Primjer ponovnog pokretanja usluge “DNS Client”.

    net stop "DNS klijent"

    net start "DNS klijent"

    Isto, koristeći kratki naziv:

    net stop Dnscache

    net start Dnscache

    Puni naziv usluge može se kopirati iz “Usluge” -< Имя службы >- “Svojstva” - “Ime za prikaz”

    Za upravljanje uslugama mnogo je praktičnije koristiti uslužni program PsService.exe iz uslužnih programa PsTools.Uslužni program ne zahtijeva instalaciju i radi na bilo kojem Windows OS-u. Osim pokretanja i zaustavljanja usluge, omogućuje vam traženje određene usluge na računalima lokalna mreža, ispitati status i konfiguraciju usluge, promijeniti vrstu pokretanja, pauzirati uslugu, nastaviti, ponovno pokrenuti.

    Za rad s uslugama sustava u sustavu Windows XP možete koristiti uslužni program sc.exe, koji vam omogućuje ne samo da zaustavite / pokrenete uslugu, već i ispitate njezin status, parametre pokretanja i rada, promijenite konfiguraciju, a također radite ne samo sa uslugama sustava, već i s upravljačkim programima. Ako imate prava, možete upravljati uslugama ne samo na lokalnom računalu, već i na udaljenom računalu. Primjeri:
    sc.exe zaustavi DNSCache- zaustaviti DNSCache uslugu na lokalnom računalu.
    sc\192.168.0.1 upit DNSCache- ispitivanje statusa usluge DNSCache na računalu s IP adresom 192.168.0.1
    sc\COMP pokrenite DNSCache pokrenite DNSCache servis na COMP računalu
    Pomoć pri radu s uslužnim programom možete dobiti unosom:
    sc/?

    Prikaz vrijednosti varijable ERRORLEVEL.

    Ova jednostavna paketna datoteka prikazat će vrijednost varijable ERRORLEVEL na određenom naredbenom retku. Prvo provjerava prisutnost barem jednog ulaznog parametra, a ako nijedan nije dan, izdaje se poruka o pogrešci i dolazi do izlaza. Ako je naveden barem jedan parametar, uzimaju se u obzir ulazni parametri naredbeni redak i izvršavaju se, a vrijednost ERRORLEVEL se vraća pomoću naredbe ECHO. Sadržaj datoteke (nazvao sam je echoEL.bat):

    @echo isključen
    if "%1" NEQ "" GOTO PARMOK
    ECHO Morate postaviti naredbeni redak za definiranje ERRORLEVEL
    Izlaz
    :PARMOK
    %1 %2 %3 %4 %5 %6 %7 %8
    ECHO %1 %2 %3 %4 %5 %6 %7 %8 ERRORLEVEL=%ERRORLEVEL%

    Primjeri pokretanja:
    echoEL.bat NETO UDIO
    - izvršit će se naredba NET SHARE (dati popis zajedničkih mrežnih resursa) i izdat će se kod ERRORLEVEL
    echoEL.bat NET SHARE X"="C:
    - izvršit će se naredba NET SHARE X:=C: (kreirajte dijeljeni mrežni resurs s imenom X i stazom do korijenskog direktorija pogona C:) Imajte na umu da je simbol = unutar dvostrukih navodnika.
    Gore navedene opcije postavljaju ispravan naredbeni redak. Ali pokušajte postaviti pogrešan parametar na NET.EXE ili nepostojeću naredbu i vidjet ćete koju vrijednost će uzeti ERRORLEVEL. I MOLIMO VAS IMAJTE U OBZIR da se naredbeni redak zapravo IZVRŠAVA i, na primjer, opcija “echoEL.bat format A:” započet će formatiranje diskete u pogonu A:.

    Dijalog s korisnikom

    Za dijalog s korisnikom možete koristiti naredbu:
    SET /P< имя переменной >=< текст >
    kada se izvrši, na zaslonu se prikazuje tekstualna poruka < текст >i očekuje se tekst odgovora. Primjer - zatražimo lozinku i dodijelimo njenu vrijednost varijabli "pset":

    Postavi /p pset="Unesite lozinku - "
    echo Lozinka je - %pset%

    Hendikep ovu metodu je nemogućnost nastavka izvršavanja batch datoteke bez odgovora korisnika, pa se vrlo često umjesto set koriste programi trećih strana. Jedan od njih - IZBOR.COM Preuzmi (1,7kb).
    CHOICE daje korisniku tekstualnu poruku i čeka da korisnik odabere jednu od ponuđenih opcija odgovora (pritiske tipki na tipkovnici). Na temelju rezultata selekcije formira se varijabla ERRORLEVEL čija je vrijednost jednaka rednom broju selekcije. Standardno postoje dvije opcije - Y ili N. Ako je odgovor Y - tada ERRORLEVEL=1, ako je N - tada ERRORLEVEL=2. Možete koristiti više od 2 opcije odabira i moguće je postaviti zadani odabir kada je korisnik na Određeno vrijeme Nisam pritisnuo niti jednu tipku. Format naredbenog retka:

    CHOICE izbori] c,nn]
    /C[:]choices - definira valjane izbore. Ako nije navedeno - YN
    /N - ne prikazuju opcije odabira.
    /S - mala slova i velika slova su različiti.
    /T[:]c,nn - Zadani odabir je "c" nakon "nn" sekundi
    text - izlaz tekstualnog niza kao zahtjeva

    Kreirajmo skupnu datoteku koja demonstrira upotrebu CHOICE. Reagirat će na pritisak tipki "1", "2", 3" i "0". Kada pritisnete "0", završava, a kada pritisnete ostatak, šalje se poruka korisniku. Ako ništa nije pritisnut unutar 10 sekundi, završava.

    @JEKA ISKLJUČENA
    :IZBOR
    IZBOR /C:1230 /T:0.10 Vaša opcija
    IF %ERRORLEVEL% EQU 4 GOTO EXIT
    echo Vaš izbor=%ERRORLEVEL%
    KRENI NA IZBOR
    :IZLAZ

    Sada, koristeći CHOICE možete kreirati batch datoteke, čiju logiku može definirati korisnik.

    Kašnjenja u batch datotekama

    Jednom davno, još u DOS-u, prikladna naredba SLEEP korištena je za organiziranje čekanja u batch datoteci, ali je onda iz nekog razloga migrirala iz standardnog Windows instalacijskog kompleta u dodatni Resource Kit. Možete ga jednostavno kopirati odande u direktorij system32 i koristiti u svojim batch datotekama.

    : SLEEP N - gdje je N broj sekundi za odgodu.

    Ako Resource Kit nije pri ruci, možete upotrijebiti prethodno razmatranu naredbu CHOISE bez izlaza teksta i s automatskim generiranjem odgovora u nn sekundi (1-99):

    Choice.com /T:y,10 /N - odgoda za 10 sekundi

    Univerzalnija metoda temelji se na pinganju povratnog sučelja potrebnim brojem paketa. Ping za povratno sučelje (naziv glavnog računala - localhost ili IP adresa 127.0.0.1) izvodi se bez stvarnog prijenosa podataka, tj. gotovo trenutno, a interval između pingova je 1 sekunda. Određivanjem broja pingova pomoću prekidača "-n" možete dobiti odgodu od n sekundi:

    Ping 127.0.0.1 -n 30 > nul - dat će odgodu od 30 sekundi

    Potražite računala na kojima je pokrenuta aplikacija

    Za implementaciju ove skripte koristite pomoćne programe iz paketa PSTools(Kratki opis). Kreirajmo batch datoteku koja pretražuje lokalnu mrežu za računalima koja pokreću program, čiji je naziv (početni dio imena) naveden kao parametar pri pokretanju, na primjer, game . Ako se otkrije, poruka će biti poslana na računalo ADMINCOMP i otkrivena aplikacija će se prisilno zatvoriti. Za pretraživanje ćemo koristiti pomoćni program Pslist.exe i analizirati njegov povratni kod. Vrijednost varijable ERRORLEVEL jednaka nuli znači da je uslužni program otkrio proces na udaljenom računalu koji odgovara uvjetima pretraživanja. Postavit ćemo naziv procesa za pretraživanje kao parametar prilikom pokretanja batch datoteke. Imenujmo našu batch datoteku psl.šišmiš. Izvođenje s parametrom izgledat će ovako:
    igra psl.bat
    Prvo treba provjeriti je li parametar naveden u naredbenoj liniji pri pokretanju, a ako nije naveden, izdat ćemo poruku korisniku i završiti izvršenje. Ako je parametar naveden, idemo na oznaku "PARMOK":
    @echo isključen
    if "%1" NEQ "" GOTO PARMOK
    ECHO Morate navesti naziv procesa za pretraživanje
    Izlaz
    :PARMOK
    Sada moramo osigurati dosljedno generiranje IP adresa računala za PSlist naredbeni redak. Najlakši način da to učinite je dodjeljivanjem privremene varijable okruženja (koja vrijedi samo za vrijeme trajanja naredbene datoteke) vrijednosti konstantne komponente adrese (na primjer, 192.168.0.) i izračunate vrijednosti dio niskog reda (na primjer, u rasponu 1-254). Na primjer, pretpostavit ćemo da trebamo skenirati računala u rasponu adresa:
    192.168.0.1 - 192.168.0.30:
    postavite IPTMP=192.168.0. - stariji dio adrese
    set /A IPLAST=1 - niski dio. Prekidač /A znači izračunati numerički izraz
    postavite IPFULL=%IPTMP%%IPLAST% - vrijednost puna IP adresa.
    Naredbeni redak za PSlist izgledat će ovako:
    pslist\%IPFULL%%1
    Sada sve što preostaje je ciklički pokrenuti PSlist, dodajući jedan nižem dijelu adrese u svakom ciklusu dok njegova vrijednost ne dosegne 30 i analizirati vrijednost ERRORLEVEL nakon izvođenja. Za analizu rezultata izvršit ćemo prijelaz naredbom:
    GOTO REZULT%ERRORLEVEL%
    pružajući prijelaz na oznaku REZULT0 kada se detektira proces i na REZULT1
    2013-08-25 14:35:35: Članci: Informacijska sigurnost: Softver. Je li ti se svidjelo?
  • U ovom članku:

    • Definiranje varijabli
    • Varijable naredbenog retka (parametri poziva bat datoteke)
    • IF uvjetni operator
    • Funkcije
    • Korištenje povratnih vrijednosti (obrada izlaznog koda)

    Definiranje varijabli

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

    Naredba SET je proširenje sposobnosti operacijskog sustava da manipulira parametrima. Određuje varijablu čija je vrijednost zamijenjena njezinim imenom kad god se to ime koristi između znakova postotka. Dakle, ako je postavljena (varijabla koju mnoge igre koriste zvučna kartica Računalo):

    SET BLASTER=A220 I5 D1 P330

    tada kada koristite sljedeću konstrukciju u batch datoteci:

    ECHO %BLASTER%

    Na ekranu će se prikazati "A220 I5 D1 P330". Pozivaju se varijable definirane naredbom SET varijable okoline okruženju i vidljivi su nakon izvođenja dok se DOS ponovno ne pokrene (osim ako se ručno ne promijeni u memoriji). To jest, može se koristiti iz jedne skupne datoteke ili programa nakon što je specificiran u drugoj. Najpoznatija je varijabla PATH, koja je skup staza za brzo traženje datoteka. Postavlja se u datoteci autoexec.bat.

    Varijable naredbenog retka
    (parametri za pozivanje bat datoteke)

    %<цифра 0-9>

    Kao i u svakom jeziku, u jeziku skupne datoteke Moguće je koristiti varijable primljene kao parametre u bat datoteci.

    Može postojati ukupno 10 istovremeno postojećih nezavisnih varijabli. Za pisanje složeni programi ovo je prilično malo, iako su 3-4 često dovoljna za normalan rad. Vrijednost varijable jednaka je vrijednosti odgovarajućeg parametra iz naredbenog retka. Varijabla %0 sadržavat će naziv .bat datoteke i, ako ste ga naveli, put do nje. To jest, ako ste pokrenuli datoteku abc.bat sa sljedećim parametrima:

    abc.bat a bc def

    tada će varijabla %0 sadržavati vrijednost abc.bat , %1 će sadržavati vrijednost a , %2 će sadržavati bc , a %3 će sadržavati def . Ovo se svojstvo naširoko koristi za stvaranje raznovrsnih skupnih datoteka kada se radi o operacijama koje se ponavljaju.

    Da biste dobili više od 10 varijabli iz naredbenog retka, možete koristiti naredbu SHIFT.

    Naredba SHIFT omogućuje korištenje više od 10 parametara naredbenog retka. Međutim, odgovarajući raniji parametri se gube. Drugim riječima, naredba SHIFT pomiče sve vrijednosti varijabli jedan korak ulijevo. To jest, varijabla %0 će sadržavati vrijednost koja je prethodno bila sadržana u varijabli %1, a varijabla %1 će sadržavati vrijednost varijable %2 prije pomaka. Međutim, ovu operaciju je ireverzibilan, odnosno nemoguće je pomaknuti varijable unatrag.

    IF uvjetni operator

    srećom, tumač naredbi cmd.exe u modernim Windowsima 2000 i novijim podržava blokove naredbi u konstrukcijama grananja, eliminirajući potrebu za korištenjem IF-ova s ​​oznakama. Blokovi naredbi su u zagradama. Izgleda ovako (imitirajući stil uvlačenja C/C++):

    ako uvjet (

    Rem naredbe grane 'then'

    Rem...

    ) inače (

    Rem naredbe grane 'else'

    Rem...

    Konkretan primjer koristi:

    @echo isključen

    postavite BUILDMODE=%1

    if "%BUILDMODE%" == "" (

    Echo FAIL: potreban je argument ^(--debug, --release^)

    Izlaz /b 1

    rem Uklonite sve crtice iz argumenta radi pojednostavljenja obrade

    postavi BUILDMODE=%BUILDMODE:-=%

    if "%BUILDMODE%" == "debug" (

    Postavite CCFLAGS=/Od /MDd /Z7

    ) inače (

    Postavite CCFLAGS=/O2 /MD

    Po mom mišljenju, s tim je sasvim moguće živjeti. No, kao i uvijek, život nije tako jednostavan kao što se čini. Postoji jedan problem. Varijable koje se koriste u blokovima then i else proširuju se prije nego što blokovi počnu izvršavati, a ne tijekom izvršenja. U gornjem primjeru to ne uzrokuje probleme, ali u sljedećem hoće:

    if "%BUILDMODE%" == "debug" (

    Echo INFO: Postavljanje načina rada okruženja za otklanjanje pogrešaka

    Postavite OPTFLAGS=/Od

    Postavite CCFLAGS=%OPTFLAGS% /MDd /Z7

    ) inače (

    Echo INFO: Postavljanje načina otpuštanja okruženja

    Postavite OPTFLAGS=/O2

    Postavite CCFLAGS=%OPTFLAGS% /MD

    Kvaka je u tome što će se u oba bloka zamjena varijable OPTFLAGS dogoditi prije nego što se promijeni tijekom izvođenja tog bloka. Sukladno tome, CCFLAGS će biti ispunjen vrijednošću koju je OPTFLAGS imao u vrijeme početka izvođenja ovog if bloka.

    Ovaj problem je riješen korištenjem odgođene ekspanzije varijable. Varijable sadržane u !…! umjesto %...% , njihova će se značenja otkriti tek u trenutku izravne uporabe. Ovaj način rada onemogućeno prema zadanim postavkama. Možete ga omogućiti korištenjem /V:ON prekidača prilikom pozivanja cmd.exe ili korištenjem naredbe:

    u tekstu same bat datoteke. Druga metoda mi se čini prikladnijom - nije baš cool zahtijevati od nekoga da pokrene vašu skriptu s određenim parametrom.

    Uz to, prethodni "pogrešni" primjer mogao bi se ispraviti ovako:

    setlocal enablelateyeexpansion

    if "%BUILDMODE%" == "debug" (

    Echo INFO: Postavljanje okruženja načina otklanjanja pogrešaka

    Postavite OPTFLAGS=/Od

    Postavite CCFLAGS=!OPTFLAGS! /MDd /Z7

    ) inače (

    Echo INFO: Postavljanje okruženja načina otpuštanja

    Postavite OPTFLAGS=/O2

    Postavite CCFLAGS=!OPTFLAGS! /DOKTOR MEDICINE

    Sada je ovo gotovo potpuni if-then-else blok. Skoro, jer ako u nekoj od echo naredbi naiđete na zatvarajuću zagradu, tada je trebate izbjeći znakom ^, inače će se parser zbuniti...

    Ali u svakom slučaju, ovo je puno bolje od sulude količine oznaka i prijelaza.

    Funkcije

    Je li moguće stvoriti funkciju u bat datoteci? Da, možete. Štoviše, ponekad je čak i potrebno. Istina, ove se funkcije mogu uvjetno nazvati.

    Postoji posebna sintaksa za naredbu poziva, koja vam omogućuje da odete do oznake u istoj bat datoteci, pamteći mjesto odakle je ovaj poziv upućen:

    argumenti call:label

    Funkcija se vraća naredbom:

    izlaz /b [neobavezni povratni kod]

    Ključ /b je ovdje vrlo važan: bez njega nećete izaći iz funkcije, već iz skripte općenito.

    Za detalje upišite u naredbeni redak:

    poziv/?

    Izlaz /?

    Zanimljivo, naredba poziva s ovom sintaksom podržava rekurzivni pozivi S automatsko stvaranje novi okvir za promjenjive argumente %0-%9. Ponekad ovo može biti korisno. Evo klasičnog primjera rekurzivnog faktorijelnog izračuna u jeziku naredbi:

    @echo isključen

    poziv: faktorijel %1

    echo %RESULT%

    Izlaz

    rem Funkcija za izračunavanje vrijednosti faktorijela

    rem Prijava:

    rem %1 Broj za koji želite izračunati faktorijel

    rem Izlaz:

    rem %RESULT% Faktorska vrijednost

    :faktorijel

    ako je %1 == 0 (

    Postavite REZULTAT=1

    Izlaz /b

    ako je %1 == 1 (

    Postavite REZULTAT=1

    Izlaz /b

    postavi /a PARAM=%1 - 1

    poziv:faktorij %PARAM%

    postavi /a REZULTAT=%1 * %RESULT%

    izlaz /b

    Primjer rada:

    > faktorijel.bat 10

    3628800

    Korištenje povratnih vrijednosti
    (izlazni kod programa za obradu)

    Kada bilo koji program završi svoj posao, vraća operacijskom sustavu svoj kod prekida. Uobičajeno je vraćanje nule nakon uspješnog završetka, inače kod pogreške. Ponekad, ili bolje rečeno često, program "namjerno" vraća vrijednost različitu od nule kako bi se neki detalji njegovog rada mogli "naučiti" u batch datoteci. Na primjer, program vraća kod pritisnute tipke, a .bat datoteka na temelju toga izvodi različite radnje.

    Kako batch datoteka može saznati izlazni kod izvršenog programa? Varijabla ključa ERRORLEVEL je predviđena za ovu svrhu.

    Primjer skupne datoteke s razinama pogreške:

    @JEKA ISKLJUČENA

    REM Pokrenite program prg1.exe

    PRG1.EXE

    REM Analiza koda završetka

    AKO JE RAZINA POGREŠKE 2. IDI NA DATOTEKU NIJE PRONAĐENA

    IF ERRORLEVEL 1 GOTO WRITEERROR

    AKO ERRORLEVEL 0 IDITE NA EXITOK

    IDI NA ONEEXIT

    :DATOTEKA NIJE PRONAĐENA

    ECHO Greška! Datoteka nije pronađena!

    IDI NA ONEEXIT

    :WRITEERROR

    ECHO Greška snimanja!

    IDI NA ONEEXIT

    :EXITOK

    ECHO Program je uspješno završen.

    IDI NA ONEEXIT

    :ONEIZLAZ

    Imajte na umu da analiza izlaznog koda ne počinje od nule, već od najveće moguće vrijednosti. Činjenica je da takva provjera znači: “ako je razina pogreške veća ili jednaka vrijednosti, tada...”. To jest, ako provjeravamo počevši od nule, bilo koja vrijednost će biti istinita u prvom retku, što je netočno.

    Ovo je najčešća greška u ovoj vrsti programa.

    Varijable postavljaju okruženje Cmd.exe. Oni propisuju ne samo ponašanje naredbene ljuske, već i samog OS-a. Varijable treba podijeliti u dvije vrste, od kojih svaka ima jedinstvena svojstva: sistemske i lokalne. Prva vrsta vam omogućuje da postavite ponašanje globalnog OS okruženja tijekom rada. Lokalne varijable postavljaju aktivnost okruženja isključivo na određenu instancu Cmd.exe. Ovo treba napomenuti kao ključnu razliku.

    Njegov govor o varijablama sustava je da su unaprijed instalirane u OS i da ih mogu koristiti sve aplikacije. Da biste ih mijenjali, morate imati administratorska prava pristupa. Najčešća primjena je pružanje zadatka pokretanja sustava. Kada se takav događaj provodi za konkretnog korisnika, možemo govoriti o mogućnosti korištenja lokalnih varijabli.

    Ispod je popis postojećih klasa varijabli na temelju važnosti njihovog prioriteta (silaznim redoslijedom):

    • Ugrađeni sustav. Moraju se nazvati najozbiljnijim, što pruža Posebna pažnja u nastajanju.
    • Varijable prikaza sustava povezane s HKEY_LOCAL_MACHINE.
    • Varijable lokalni tip, povezano s HKEY_CURRENT_USER.
    • Cijeli popis varijabli i okolina koje se nalaze u dokumentu Autoexec.bat.
    • Kompletan popis varijabli i okruženja koji se nalaze u skripti za pokretanje sustava. U određenim situacijama možda i ne postoji.
    • Interaktivno primijenjene varijable za pisanu skriptu ili paketni dokument.

    Postoji prilično dugačak popis varijabli koje spadaju u kategoriju lokalnih ili sistemskih. Ovom pitanju treba posvetiti više pažnje.

    Lokalne varijable

    Ime Informacija

    %ALLUSERSPROFILE%

    Pruža informacije o tome gdje se točno nalazi profil Svi korisnici

    Pruža zadanu lokaciju programa

    Omogućuje vam da dobijete put do mape koju koristite

    Pruža naredbeni redak koji se koristi za pokretanje trenutne instance Cmd.exe

    Pruža naziv kontrolera domene koji provjerava autentičnost navedene sesije

    Omogućuje vam da navedete KA parametre za trenutni tumač. Da biste dobili pristup, morate koristiti Cmd.exe

    Pruža naziv domene koja ima popis korisničkih računa

    Daje ime korisnika koji je prijavljen

    Vraća poziciju računa trenutnog korisnika

    Varijable sustava

    Omogućuje vam da navedete broj verzije trenutnih proširenja procesora naredbi

    Daje naziv uređaja na kojem se rad izvodi

    Vraća putanju do izvršne naredbene ljuske

    Pruža valjane informacije. Treba napomenuti da se namjerava koristiti format sličan datumu /t. Sve informacije o navedenoj naredbi mogu se dobiti izravno iz odgovarajućeg odjeljka na web mjestu

    Koristi se za pružanje šifre pogreške zadnje korištene naredbe. Standardna situacija uključuje prisutnost vrijednosti koja je različita od nule

    Daje naziv diska radne stanice koji je povezan s korisničkim imenikom. Potrebno za instalaciju na temelju lokacije glavnog imenika

    Pruža put do glavnog direktorija korisnika. Treba se instalirati na temelju informacija o lokaciji glavnog imenika

    Pruža put do korisničkog zajedničkog glavnog imenika. Treba se instalirati na temelju informacija o lokaciji glavnog imenika

    %NUMBER_OF_PROCESSORS%

    Određuje broj procesora koje određeni uređaj ima

    Prenosi informacije o nazivu OS-a određeni uređaj. Postoje određene značajke prikazivanja naziva za neke vrste OS-a i to se mora uzeti u obzir

    Postavlja put pretraživanja za otkrivanje programa

    Daje popis ekstenzija dokumenata koje OS smatra izvršnim

    %PROCESSOR_ARCHITECTURE%

    Koristi se u slučajevima kada je potrebno dobiti arhitekturu određenog procesora

    %PROCESSOR_IDENTFIER%

    Pruža kratke informacije o procesoru

    %PROCESSOR_LEVEL%

    Pruža informacije o broju revizije procesora

    Pruža bilo koji cijeli broj u rasponu 0-32767 uključivo

    Daje naziv diska na kojem je snimljen korijenski direktorij sustava Windows XP

    Omogućuje lokaciju imenik sustava OS

    Ove varijable su sustav i korisnik. To vam omogućuje obavljanje identičnih zadataka s različite situacije. Pruža privremene mape koje mogu koristiti svi korisnici. Za određene programe trebate koristiti TEMP ili TMP.

    Pruža informacije o trenutnom vremenu. Koristi se sličan format prikaza kao vrijeme /t.

    Omogućuje vraćanje OS direktorija

    Postavljanje varijabli okoline

    Da biste stvorili, izbrisali ili izložili varijablu okruženja, morate koristiti posebna ekipa postaviti. Posebnost je prilagodba varijabli isključivo u okruženju operativne ljuske.

    Za izdavanje određene varijable, predviđeno je pisanje u CS:

    postavite ime_varijable

    Dodavanje druge varijable vrši se pisanjem:

    postavite naziv varijable=vrijednost

    Da biste izvršili postupak brisanja, trebali biste napisati red:

    postavite ime_varijable=

    Sustav specificira upotrebu većine postojećih simbola koji služe kao vrijednosti. Ovdje se mogu ubrojiti i prodeli. Primjeniti određene likove, prvo morate unijeti (^) ili staviti u navodnike. Neuspjeh u tome može rezultirati netočnim izvođenjem ili pogreškama. Potrebno je razmotriti nekoliko jednostavni primjeri. Recimo da trebamo kreirati varijablu new&name. Da bi se izvršio zadatak, u CS se unosi sljedeće:

    postavite varname=novo^&ime

    Možete pokušati ne koristiti poseban znak (^), ali to će biti nemoguće učiniti. Razlog je taj što stalno daje istu pogrešku.

    Kada je varijabla postavljena, nije važno koriste li se velika ili mala slova. Slučaj neće biti uzet u obzir. Postoji jedan razlikovna značajka- varijabla će i dalje biti prikazana točno onako kako je unesena. To olakšava uočavanje ako koristite različite registre za razlikovanje pri pisanju imena.

    Zamjena u varijable okoline

    Postoji način da izvršite zamjenu određenih vrijednosti u varijable okoline izravno iz CS-a ili skripte. Za izvođenje ovog zadatka preporučuje se korištenje simbola postotaka. Ovako izgleda:

    %variable_name%

    Namjera je ukazati na činjenicu da Cmd.exe mora izravno pristupiti vrijednostima određene varijable. Postupak usporedbe znak po znak neće se provesti. Važno je uzeti u obzir činjenicu da se sama zamjena ne smatra rekurzivnom. Provjera se provodi samo jednom.

    02/12/15 21.1K

    Zašto je takav kaos u svijetu? Da, jer je administrator našeg sustava zaboravio ispuniti svoje dužnosti. Ili sam samo izgubio popis cmd naredbi iz našeg svijeta. Iako je ovo donekle originalan pogled na postojeći poredak stvari, on ipak odražava dio istine koja nam je potrebna: pomoću naredbenog retka možete lako unijeti red u svoje računalo:

    Što je naredbeni redak

    Naredbeni redak najjednostavniji je alat za upravljanje operativnim sustavom vašeg računala. Kontrola se odvija pomoću određenog broja rezerviranih naredbi i skupova znakova tekstualna tipkovnica bez miša ( u Windows operativnom sustavu).

    U sustavima na Temeljen na UNIX-u Kada radite s naredbenim redkom, možete koristiti miš.

    Neke su nam naredbe stigle iz MS-DOS-a. Naredbeni redak naziva se i konzola. Koristi se ne samo za administraciju operativnog sustava, već i za upravljanje redovni programi. Najčešće su u ovaj skup naredbi uključene naredbe koje se rijetko koriste.

    Prednost cmd aplikacije osnovnih naredbi je da troši minimalnu količinu resursa sustava. A to je važno u hitnim situacijama kada su, na ovaj ili onaj način, uključene sve snage računala.

    cmd implementira mogućnost izvršavanja i stvaranja cijelih skupnih datoteka, koje predstavljaju određeni redoslijed izvršavanja određenog broja naredbi (skripti). Zahvaljujući tome, mogu se koristiti za automatizaciju određenih zadataka ( upravljanje računima, arhiviranje podataka i drugo).

    Tim Windows ljuska Interpretator Cmd.exe koristi se za manipulaciju i preusmjeravanje naredbi na određene uslužne programe i alate operacijskog sustava. Učitava konzolu i preusmjerava naredbe u formatu koji sustav razumije.

    Rad s naredbenim redkom u operacijskom sustavu Windows

    Konzolu u sustavu Windows možete pozvati na nekoliko načina:


    Obje metode uključuju pokretanje konzole kao trenutni korisnik. Odnosno, sa svim pravima i ograničenjima koja su nametnuta njegovoj ulozi u operativnom sustavu. Da biste pokrenuli cmd s administratorskim pravima, trebate odabrati ikonu programa u izborniku Start i u kontekstni izbornik odaberite odgovarajuću stavku:


    Nakon pokretanja uslužnog programa možete dobiti popratne informacije o naredbama i formatu za njihovo pisanje u konzoli. Da biste to učinili, unesite izjavu o pomoći i pritisnite "Enter":

    Osnovne naredbe za rad s datotekama i imenicima

    Najčešće korištene naredbe su:

    • RENAME – preimenovanje direktorija i datoteka. Sintaksa naredbe:

    PREIMENUJ | REN [pogon/staza] originalni naziv datoteke/direktorija | konačni naziv datoteke
    Primjer: PREIMENUJ C:UsershomeDesktoptost.txt test.txt

    • DEL (BRIŠI) – koristi se samo za brisanje datoteka, ne direktorija. Njegova sintaksa je:

    DEL | BRIŠI [metoda obrade] [naziv datoteke]
    Primjer: Del C:UsershomeDesktoptest.txt/P

    Pod metodom obrade podrazumijevamo posebnu oznaku koja vam omogućuje implementaciju određenog uvjeta prilikom brisanja datoteke. U našem primjeru, zastavica "P" omogućuje prikaz dijaloškog okvira dopuštenja za brisanje svake datoteke:


    Više informacija o mogućim vrijednostima parametra "način obrade" možete pronaći u tehničkoj dokumentaciji za operativni sustav Windows.

    • MD – omogućuje stvaranje mape na navedenoj stazi. Sintaksa:

    MD [pogon:] [put]
    Primjer:
    MD C:UsershomeDesktoptest1test2

    Primjer će stvoriti podmapu test2 unutar mape test1. Ako jedna od korijenskih mapa staze ne postoji, i ona će se stvoriti:

    • RD ( RMDIR) – brisanje određene mape ili svih direktorija na određenoj stazi. Sintaksa:

    RD | RMDIR [ključ_procesa] [pogon/put]
    Primjer:
    rmdir /s C:UsershomeDesktoptest1test2

    Primjer koristi oznaku s, koja će uzrokovati brisanje cijele grane direktorija navedenih u stazi. Stoga ga ne biste trebali koristiti bez potrebe naredba rmdir s ovim ključem za obradu.

    U sljedećem odjeljku pobliže ćemo pogledati mrežne cmd naredbe.

    Naredbe za rad s mrežom

    Naredbeni redak omogućuje vam upravljanje ne samo datotečnim sustavom računala, već i njegovim mogućnosti umrežavanja. Dio mrežne naredbe Konzola uključuje velik broj operatera za nadzor i testiranje mreže. Najrelevantniji od njih su:

    • ping – naredba se koristi za praćenje mogućnosti Mrežna veza PC. Poslano na udaljeno računalo postavljena količina pakete i zatim im poslati natrag. U obzir se uzima vrijeme prijenosa paketa i postotak gubitaka. Sintaksa:

    ping [-t] [-a] [-n brojač] [-l veličina] [-f] [-i TTL] [-v tip] [-r brojač] [-s brojač] [(-j host_list | - k node_list)] [-w interval] [target_PC_name]

    Primjer implementacije naredbe:
    ping primjer.microsoft.com
    ping –w 10000 192.168.239.132

    U posljednjem primjeru naredbe cmd ping, zahtjev se šalje primatelju s navedenom IP adresom. Interval čekanja između paketa je 10 000 (10 sekundi). Prema zadanim postavkama ovaj je parametar postavljen na 4000:

    • tracert – koristi se za određivanje mrežni put Do navedeni resurs slanjem posebne echo poruke preko protokola
    • ICMP (Protokol kontrolnih poruka). Nakon pokretanja naredbe s parametrima, prikazuje se popis svih routera kroz koje poruka prolazi. Prvi element na popisu je prvi usmjerivač na strani traženog resursa.

    Sintaksa tracer cmd naredbe:
    tracert [-d] [-h maksimalni_broj_skokova] [-j popis_čvorova] [-w interval] [naziv_ciljnog_resursa]
    Primjer implementacije:
    tracert -d -h 10 microsoft.com

    Primjer prati rutu do određenog resursa. Time se povećava brzina operacije zbog korištenja parametra d, koji sprječava naredbu u pokušaju dobivanja dopuštenja za čitanje IP adresa. Broj prijelaza (skokova) ograničen je na 10 korištenjem postavljena vrijednost parametar h. Prema zadanim postavkama, broj skokova je 30:


    isključivanje [(-l|-s|-r|-a)] [-f] [-m [\PC_name]] [-t xx] [-c “poruke”] [-d[u][p]: xx:yy]
    Primjer:
    isključivanje /s /t 60 /f /l /m \191.162.1.53

    Udaljeno računalo (m) s navedenom IP adresom (191.162.1.53) ugasit će se (s) nakon 60 sekundi (t). Ovo će vas prisiliti da se odjavite iz svih aplikacija (f) i sesije trenutnog korisnika (l).