Päivitä järjestelmämuuttujat cmd:ssä. ERRORLEVEL-muuttujan arvon näyttäminen näytöllä. Viiveet erätiedostoissa

Cmd.exe:n kuoriympäristö määritellään muuttujilla, jotka määrittävät kuoren ja käyttöjärjestelmän toiminnan. Voit määrittää shell-ympäristön tai koko käyttöjärjestelmän ympäristön toiminnan kahdentyyppisillä ympäristömuuttujilla: system ja local. Järjestelmäympäristömuuttujat määrittävät globaalin käyttöjärjestelmäympäristön toiminnan. Paikalliset ympäristömuuttujat määrittävät ympäristön toiminnan tietyssä Cmd.exe-esiintymässä.

Käyttöjärjestelmä määrittää ennalta järjestelmäympäristömuuttujat, ja ne ovat kaikkien Windows XP -prosessien käytettävissä. Vain käyttäjät, joilla on järjestelmänvalvojan oikeudet, voivat muuttaa näitä muuttujia. Näitä muuttujia käytetään yleisimmin kirjautumisskripteissä.

Paikalliset ympäristömuuttujat ovat käytettävissä vain, kun käyttäjä, jolle ne on luotu, on kirjautunut sisään. Paikalliset muuttujat pesästä HKEY_CURRENT_USER ovat sopivia vain nykyiselle käyttäjälle, mutta määrittävät globaalin käyttöjärjestelmäympäristön toiminnan.

SISÄÄN seuraava lista esitetty Erilaisia ​​tyyppejä muuttujat laskevassa tärkeysjärjestyksessä.

  1. Sisäänrakennetut järjestelmämuuttujat
  2. Hive-järjestelmän muuttujat HKEY_LOCAL_MACHINE
  3. Hive paikalliset muuttujat HKEY_CURRENT_USER
  4. Kaikki ympäristömuuttujat ja polut on määritetty Autoexec.bat-tiedostossa.
  5. Kaikki ympäristömuuttujat ja polut on määritetty kirjautumiskomentosarjassa (jos sellainen on).
  6. Muuttujat, joita käytetään vuorovaikutteisesti komentosarjassa tai erätiedostossa

SISÄÄN kuori jokainen Cmd.exe-esiintymä perii emosovelluksensa ympäristön. Siksi voit muuttaa muuttujia uudessa Cmd.exe-ympäristössä vaikuttamatta pääsovelluksen ympäristöön.

Seuraavassa taulukossa luetellaan Windows XP:n järjestelmä- ja paikalliset ympäristömuuttujat.

Muuttuva

Kuvaus

%ALLUSERSPROFILE%

Paikallinen

Palauttaa "Kaikki käyttäjät" -profiilin sijainnin.

Paikallinen

Palauttaa sovellustietojen oletussijainnin.

Paikallinen

Palauttaa polun nykyiseen kansioon.

Paikallinen

Palauttaa komentomerkkijonon, jolla tämä Cmd.exe-esiintymä käynnistettiin.

Järjestelmällinen

Palauttaa versionumeron nykyiset laajennukset komentokäsittelijä.

Järjestelmällinen

Palauttaa tietokoneen nimen.

Järjestelmällinen

Palauttaa polun suoritettavaan komentotulkkiin.

Järjestelmällinen

Palauttaa nykyiset tiedot. Käyttää samaa muotoa kuin komento päivämäärä /t. Luotu Cmd.exe-komennolla.

Järjestelmällinen

Palauttaa viimeksi käytetyn komennon virhekoodin. Nollasta poikkeava arvo tarkoittaa yleensä virhettä.

Järjestelmällinen

Palauttaa paikallisen aseman nimen työasema Liitetty käyttäjän kotihakemistoon. Aseta päähakemiston sijainnin perusteella. Käyttäjän kotihakemisto on määritetty " Paikalliset käyttäjät ja ryhmät."

Järjestelmällinen

palaa täysi polku käyttäjän kotihakemistoon. Aseta päähakemiston sijainnin perusteella. Käyttäjän kotihakemisto määritetään Paikalliset käyttäjät ja ryhmät -laajennuksessa.

Järjestelmällinen

Palauttaa verkkopolun käyttäjän jaettuun kotihakemistoon. Aseta päähakemiston sijainnin perusteella. Käyttäjän kotihakemisto määritetään Paikalliset käyttäjät ja ryhmät -laajennuksessa.

Paikallinen

Palauttaa nykyisen istunnon todenneen toimialueen ohjaimen nimen.

%NUMBER_OF_PROCESSORS%

Järjestelmällinen

Määrittää tietokoneeseen asennettujen prosessorien määrän.

Järjestelmällinen

Palauttaa käyttöjärjestelmän nimen. Windows 2000 -käyttöjärjestelmää käytettäessä käyttöjärjestelmän nimi näkyy muodossa Windows_NT.

Järjestelmällinen

Määrittää suoritettavien tiedostojen hakupolun.

Järjestelmällinen

Palauttaa luettelon tiedostopäätteistä, jotka käyttöjärjestelmä pitää suoritettavina.

%PROCESSOR_ARCHITECTURE%

Järjestelmällinen

Palauttaa prosessorin arkkitehtuurin. Arvot: x86, IA64.

%PROCESSOR_IDENTFIER%

Järjestelmällinen

Palauttaa prosessorin kuvauksen.

%PROCESSOR_LEVEL%

Järjestelmällinen

Hakee tietokoneeseen asennetun prosessorin mallinumeron.

%PROCESSOR_REVISION%

Järjestelmällinen

Palauttaa suorittimen versionumeron.

Paikallinen

Palauttaa nykyisen tulkin komentorivivaihtoehdot. Luotu Cmd.exe-komennolla.

Järjestelmällinen

Palauttaa mielivaltaisen desimaaliluvun välillä 0 - 32767. Luotu Cmd.exe-komennolla.

Järjestelmällinen

Palauttaa Windows XP:n juurihakemiston (eli järjestelmähakemiston) sisältävän aseman nimen.

Järjestelmällinen

Palauttaa järjestelmän sijainnin Windowsin hakemisto xp.

Järjestelmä ja käyttäjä

Hakee oletusarvoiset väliaikaiset kansiot, joita käyttävät sovellukset, jotka ovat kirjautuneiden käyttäjien käytettävissä. Jotkut sovellukset vaativat TEMP-muuttujan, toiset vaativat TMP-muuttujan.

Järjestelmällinen

Palauttaa nykyisen ajan. Käyttää samaa muotoa kuin komento aika /t. Luotu Cmd.exe-komennolla.

Paikallinen

Palauttaa käyttäjätilien luettelon sisältävän toimialueen nimen.

Paikallinen

Palauttaa järjestelmään kirjautuneen käyttäjän nimen.

Paikallinen

Palauttaa nykyisen käyttäjän profiilisijainnin.

Järjestelmällinen

Palauttaa käyttöjärjestelmän hakemiston sijainnin.


0.00 (1 )

Yleinen lähestymistapa.

Komentotiedostot ovat tekstitiedostoja, joiden tunniste bat tai cmd, jonka merkkijonot ovat komentoja tai suoritettavien tiedostojen nimiä. Kun suoritat komentojonotiedoston, käyttöjärjestelmän komentoprosessori (kutsutaan usein komentojen tulkiksi) ottaa ohjauksen haltuunsa ja lukee ja tulkitsee komentojonotiedoston rivit peräkkäin. Windows 9X:ssä onnistuu command.com, WinNT/2K/XP - cmd.exe. Erätiedoston rivit voivat sisältää itse komentoprosessorin komentoja (FOR, GOTO, IF jne.) tai suoritettavien moduulien nimiä (net.exe, regedit.exe, win.com jne.). WinNT/2K/XP-käyttöjärjestelmissä voit saada lyhyt viittaus komentoriviä käyttävien komentojen koostumuksen mukaan:

tai tietyllä komennolla:

HELP komennon nimi

Voit näyttää ohjetekstin ei näytöllä, vaan tiedostossa lähdön uudelleenohjaus . Komentoriviä käytettäessä vakiosyöttölaite on näppäimistö ja tulostuslaite on näyttö, mutta nämä laitteet voidaan yhdistää uudelleen käyttämällä uudelleenohjausmerkkejä

< - syötteen uudelleenohjaus

> - uudelleenohjaa tulos (tai > > - uudelleenohjaa olemassa oleva tiedosto kun tuloste liitetään tiedoston loppuun.)

Tulostaa komentotietovirranAUTAhelp.txt-tiedostoon komentorivi olisi:

APUA > help.txt

GOTO-komennon ohjeiden näyttäminen goto.txt-tiedostossa:

OHJE GOTO > goto.txt

Ympäristömuuttujien käyttö.

SISÄÄN erätiedostot voidaan ja usein pitääkin käyttää ympäristömuuttujat - Muuttujat, joiden arvot kuvaavat ympäristöä, jossa komento tai komentotiedosto suoritetaan. Ympäristömuuttujien arvot muodostuvat käyttöjärjestelmän käynnistyksen ja käyttäjän rekisteröinnin yhteydessä järjestelmään, ja ne voidaan asettaa myös komennollaASETA, jonka muoto on:

SET [muuttuja=[merkkijono]]

muuttuja Ympäristömuuttujan nimi.

linja Määritetylle muuttujalle liitettävä merkkijono.

Esimerkiksi komentorivi

SET mynane=Vasya

lisää muuttujan myname arvolla Vasya.

Voit saada muuttujan arvon ohjelmissa ja erätiedostoissa käyttämällä sen nimeä prosenttimerkkien sisällä ( %) . Esimerkiksi komento

näyttää sanan aika ja komennon

näyttää muuttuvan ajan arvon, joka ottaa nykyisen ajan arvon.

Ja komentorivi

SET PATH=C:myprog;%path%

lisää hakupolulle suoritettavat ohjelmat, jota kuvaa PATH-muuttujan C:myprog-hakemisto arvo

SET-komennon suorittaminen ilman parametreja saa muuttujien nykyiset arvot näkyviin näytölle muodossa:

NUMBER_OF_PROCESSORS=1 - prosessorien määrä

OS=Windows_NT - käyttöjärjestelmän tyyppi

Polku=E:WINDOWSsystem32;E:WINDOWS;E:Program FilesFar - suoritettavien tiedostojen hakupolku.

PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH - suoritettavien tiedostojen laajennukset.

PROCESSOR_ARCHITECTURE=x86 - prosessoriarkkitehtuuri.

PROCESSOR_IDENTIFIER=x86 Family 6 Model 8 Stepping 1, AuthenticAMD - Prosessorin tunnus.

PROCESSOR_LEVEL=6 - prosessorin taso (mallinumero).

PROCESSOR_REVISION=0801 - prosessoriversio.

ProgramFiles=E:Program Files - polku "Ohjelmatiedostot"-kansioon

PROMPT=$P$G - komentorivikehotteen muoto $P - polku kohteelle nykyinen hakemisto$G - merkki ">".

SystemDrive=E: - järjestelmäaseman kirjain.

SystemRoot=E:WINDOWS - Windows-käyttöjärjestelmän hakemisto.

Joidenkin SET-komennon muuttujien arvoa ei anneta. Nämä ovat muuttujia, joiden arvot muuttuvat dynaamisesti:

%CD% - Ottaa nykyisen hakemiston merkkijonoarvon.

%DATE% – ottaa arvon nykyinen päivämäärä.

%TIME% - Hyväksyy nykyisen ajan arvon.

%RANDOM% - Ottaa satunnaisen arvon desimaaliluku välillä 1 -32767.

%ERRORLEVEL% - Hakee tehtävän poistumiskoodin ERRORLEVEL nykyisen arvon

%CMDEXTVERSION% - Ottaa CMD.EXE-komentoprosessorin version arvon laajennettua komentokäsittelyä varten.

%CMDCMDLINE% – ottaa komentotulkin kutsuneen rivin arvon.

Voit tarkastella muuttujan arvoa komentorivillä:

ECHO %muuttuva %

Syötä parametrit erätiedostoon.

On mahdollista välittää komentoriviparametreja erätiedostoon ja käyttää niiden arvoja itse komentojonotiedoston lausekkeissa.

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

Itse erätiedostossa ensimmäinen parametri on käytettävissä muuttujana %1 , toinen - %2 ja niin edelleen. Itse erätiedoston nimi on saatavilla muuttujana %0 . Luodaan esimerkiksi erätiedosto, jonka tehtävänä on näyttää syötettyjen parametrien arvot näytöllä. Yleensä tekstin näyttämiseen käytetty komento on

KAIKU< текст >

Jos teksti kuitenkin korvataan %1:llä, palautetaan ensimmäinen parametri, %2 - toinen parametri ja niin edelleen.

Luo parm.bat-tiedosto, jossa on seuraava sisältö:

echo Ensimmäinen parametri=%1

echo Toinen parametri=%2

echo Kolmas parametri = %3

ja käynnistä se seuraavalla komennolla:

parm.bat ENSIMMÄINEN toinen "kaksi sanaa"

Suoritettuasi sen ymmärrät kuinka se toimii ja että parametrit välilyönneillä on laitettava lainausmerkkeihin. Jotta käsitelty komentoprosessori rivit eivät näkyneet näytöllä, voit käyttää komentoaECHO OFFasettamalla sen erätiedoston ensimmäiselle riville. Jos komentotulkki jättää huomiotta erätiedoston rivin, sen alkuunREM< пробел > . Tällä tavalla voit lisätä kommentteja, jotka ovat usein hyödyllisiä suurissa erätiedostoissa:

rem ECHO OFF poistaa käytöstä erätiedoston rivien sisällön näyttämisen näytöllä

REM tulostaa vain suorituksensa tuloksen.

echo Ensimmäinen parametri=%1

echo Toinen parametri=%2

echo Kolmas parametri = %3

Kokeile korvata ECHO OFF tilalla @ECHO OFF - tulos puhuu puolestaan. Linja, joka sammuttaa lähtötilan, ei enää näy näytössä.

Siirtymät ja etiketit.

Erätiedostoissa voit käyttää ehdollisia hyppykomentoja, jotka muuttavat työnsä logiikkaa tiettyjen ehtojen täyttymisen mukaan. Havainnollistaaksesi ehdollisten hyppyjen käyttöä, luodaan erätiedosto, jonka tarkoituksena on määrittää ennalta määritetty asemakirjain irrotettava tietoväline, joita käytetään flash-asemina. Ehdot ovat seuraavat - on 2 flash-asemaa, joista toisen pitäisi näkyä Explorerissa asemana X: ja toisen asemana Y: ei väliä kumpi USB-portti ne ovat yhteydessä. Oletamme sen oikeita levyjä voidaan yhdistää muodossa F: tai G: Tunnistamme levyt tietynnimisen tiedoston perusteella (on parempi piilottaa tällainen tiedosto juurihakemistoon ja nimetä se jotenkin epätavallisella tavalla):

Flashd1.let - ensimmäisellä levyllä

Flashd2.let - toisessa

Nuo. Erätiedoston tarkoituksena on tarkistaa, onko tiedosto irrotettavat levyt F: Ja G: tiedostot Flashd1.let tai Flashd2.let ja määritä asemakirjain sen mukaan, mikä niistä on olemassa X: tai Y:

Voit etsiä tiedostoa levyltä käyttämällä komentoaJOS OLEMASSA:

JOS OLEMASSA tiedostonimi komento

Komennona se on helpoin käyttääSUBSTA, joka yhdistää aseman nimen hakemistoon.

SUBST X:C:- luo virtuaalinen levy X:, jonka sisältö on aseman C juurihakemisto:

Luo erätiedosto setXY.bat seuraavilla riveillä:

Tällaisen tiedoston suorittamisen jälkeen sinulla on levyt X: ja Y: Mutta jos suoritat sellaisen tiedoston uudelleen, SUBST-komento antaa virheilmoituksen - koska levyt X: ja Y: ovat jo olemassa.

On suositeltavaa ohittaa SUBST:n suorittaminen, jos virtuaalilevyt X: ja Y: on jo luotu (tai poista ne komennolla SUBST valitsimella -d ennen asennusta). Muokkaa erätiedostoa komennollaMENE- Siirrä ohjaus erätiedoston riville tarralla.

GOTO etiketti

Tarran on oltava erillisellä rivillä ja sen on alettava kaksoispisteellä. Tehdään muutoksia erätiedostoomme, jotta ei tule virheilmoituksia:

REM jos X:ää ei ole: - siirry sitten otsikkoon SETX

JOS EI OLE OLEMASSA X: SIIRRY SETX

REM, jos X on olemassa: - tarkista Y:

JOS OLEMASSA G:flash1.let SUBST X: G:

JOS OLEMASSA F:flash1.let SUBST X: F:

REM, jos Y: on olemassa - lopeta erätiedosto.

JOS ON OLEMASSA Y: POISTU

JOS ON OLEMASSA G:flash2.let SUBST Y: G:

JOS ON ON F:flash2.let SUBST Y: F:

REM-tulostus erätiedostosta

SUBST-virheviesti on kadonnut. Merkkejä virheistä komentojen suorittamisessa voidaan seurata myös itse erätiedostossa analysoimalla muuttujaERRORLEVEL, jonka arvo muodostuu useimpien ohjelmien suorituksen aikana. ERRORTASO on 0, jos ohjelma poistui ilman virheitä ja 1, jos tapahtui virhe. Muita arvoja voi olla, jos ne annetaan suoritettavassa ohjelmassa.

Voit myös käyttää erätiedostoa komentona erätiedostorivillä. Lisäksi komentoa käytetään lähetykseen, jossa palataan kutsuvan erätiedoston suorituspisteeseenPUHELU. Luodaan komentotiedosto test.bat, jossa on seuraava sisältö:

ECHO Call 1.bat

ECHO paluu.

Ja komennon sisältävä 1.bat-tiedostoTAUKO,erätiedoston suorittamisen keskeyttäminen, kunnes mitä tahansa näppäintä painetaan.

Kun test.bat suoritetaan, näyttöön tulee viesti

Soita 1.bat

ja ohjaus annetaan 1.batille tauko-komennolla. Kun olet käynnistänyt näppäimen näppäimistöllä, komentorivi "ECHO Return". ja näyttö tulee näkyviin

Jos poistat CALL:n tiedostosta test.bat, palautusta tiedostosta 1.bat ei suoriteta. Muuten, käyttämällä ohjauksen siirtoa erätiedostoon, voit järjestää sen silmukan. Yritä lisätä seuraava rivi test.bat-tiedoston loppuun:

Voit poistua erätiedostosilmukasta painamalla CTRL-Break yhdistelmää. On mahdollista käyttää CALL-komentoa kutsumaan proseduuria erätiedoston sisällä. Tässä tapauksessa nimeä ei käytetä argumenttina ulkoinen tiedosto ja etiketti:
....
call:proc1
....
:proc1
....
poistu
....

Tiedostojen luominen.

Windowsissa ei ole erityistä komentoa tiedoston luomiseen, mutta se voidaan helposti välttää useilla tavoilla:

Kopioi konsolista tiedostoon

COPY CON myfile.txt

Kun tämä komento suoritetaan, näppäimistön (CON-laitteen) tiedot kirjoitetaan tiedostoon myfile.txt. Paina F6 tai CTRL-Z yhdistelmät suorittaa tulostuksen loppuun.

Tulostuksen uudelleenohjaus

ECHO 1 > omatiedosto.txt

Tätä komentoa suoritettaessa luodaan tiedosto myfile.txt, joka sisältää merkin "1"

Tulon ja lähdön uudelleenohjauksen yhdistelmä:

COPY CON > omatiedosto.txt< xyz

Tätä komentoa suoritettaessa, kuten ensimmäisessä tapauksessa, käytetään kopiointia konsolista tiedostoon, mutta näppäimistön tietojen sijaan käytetään syöttöä olemattomasta laitteesta xyz. Järjestelmä näyttää viestin, jonka mukaan tällaista laitetta ei ole olemassa, mutta tyhjä tiedosto myfile.txt luodaan onnistuneesti.
Hyvin yksinkertainen vaihtoehto on kopioida kuvitteellisesta laitteesta nimeltä tyhjä arkistoida.
kopioi null omatiedosto.txt

Jos joudut usein luomaan tyhjiä tiedostoja, voit valmistella oman erätiedoston (esim. newfile.bat tai, mikä vielä parempi, nf.bat) ja nimen luotu tiedosto anna se parametrina käynnistyksen yhteydessä.

Tiedoston sisältö:

Aseta tämä erätiedosto järjestelmähakemistoosi (C:windowssystem32 tai mikä tahansa PATH-hakupolussasi oleva).

Komentorivi:

uusitiedosto.bat omatiedosto.txt

Tai

nf.bat omatiedosto.txt

Tai
nf omatiedosto.txt

Tässä on tiimisi nf luomista varten tyhjä tiedosto komentorivillä.

Saman aseman kirjaimen määrittäminen irrotettavalle asemalle.

Tehtävänä on varmistaa, että irrotettava USB-asema (flash-asema) on aina saatavilla samalla kirjaimella riippumatta siitä, millä tietokoneella sitä käytetään ja miten se on kytketty. Sen ratkaisemiseksi käytämme jo yllä mainittua SUBST-komentoa. Valitaan siirrettävälle levylle haluttu kirjain, esimerkiksi - X. Sen levyn nimi, jolta erätiedosto käynnistettiin, on saatavilla muuttujana %~d0. Luo erätiedosto, jossa on seuraava sisältö:
@kaiku pois
subst X: %~d0
mikä tarkoittaa - luo virtuaalilevy X:, joka on kartoitettu fyysinen levy mistä erätiedosto ajettiin.
Lisätietoja %0-muuttujan korvausarvoista on seuraavassa erätiedostossa:

@kaiku pois
ECHO-KÄSITTELYTIEDOSTO - %0
ECHO Erätiedoston luomisen/muokkauksen päivämäärä/aika - %~t0
ECHO Erätiedoston polku - "%~f0"
ECHO Erätiedostolevy - %~d0
ECHO-komentotiedostohakemisto - "%~p0"
ECHO Erätiedoston nimi - %~n0
ECHO Erätiedostotunniste - %~x0
KAIKU Lyhyt nimi ja laajennus - %~s0
ECHO Erätiedoston attribuutit - %~a0
ECHO Erätiedoston koko - %~z0

Sukupolvien arkistojen luominen päivämäärän ja ajan mukaan.

Ratkaistaan ​​seuraava ongelma - sinun on luotava arkisto tiedostoista, jotka sijaitsevat C: Program FilesFAR -hakemistossa. Nimi arkistotiedosto tulee koostua nykyisestä ajasta (tunnit.minuutit.sekuntia - HH.MM.SS.rar) ja sijoitettava kohtaan uusi katalogi, jonka nimessä on oltava nykyinen päivämäärä (päivä.kuukausi.vuosi - PP.KK.VVVV). Arkistointiin käytämme RAR-arkistointiohjelmaa. Käynnistä arkiston luontimuoto:

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

a- arkiston luontikomento.
-r- avain, joka määrittää alihakemistojen arkistoinnin (koska sisään lähdekansio on alihakemistoja).

Joten ongelman ratkaisemiseksi sinun on luotava oikein nimet ja polut RAR:lle. Miksi käyttää seuraavia tekijöitä:

  • Erätiedostoissa voit käyttää nykyistä päivämäärää ja kellonaikaa - muuttujat %DATE% ja %TIME%
  • Voit luoda tilapäisiä muuttujia erätiedostoihin SET-komennolla.
  • Väliaikaisten muuttujien arvo voidaan muodostaa %DATE% ja %TIME% perusteella ohittamalla ja (tai) korvaamalla niiden osat samalla SET-komennolla.

    Päivämäärä, joka on saatu %DATE%-muuttujasta milloin oletusasetukset alueasetukset näyttävät tältä:
    Ma 21.01.2005- Viikonpäivä (2 merkkiä) - Välilyöntipäivämäärä (10 merkkiä)
    Luodaan esimerkiksi hakemisto MD-komennolla< имя каталога >.
    Luo muistiin väliaikainen muuttuja VDATE ja määritä sille DATE-ympäristömuuttujan arvo ilman kolmea ensimmäistä merkkiä - 20.01.2005:

    Aseta VDATE=%päivämäärä:~3%

    Luo C:-asemaan hakemisto, jonka nimi = nykyinen päivämäärä VDATE-muuttujasta:

    MD C:\%VDATE%
    Tämän komennon suorittamisen jälkeen asemaan C luodaan hakemisto nimeltä 01/20/2005:

    %TIME% muuttujasta haettu aika:
    14:30:59.93 - Tunteja, minuutteja, sekunteja, sekunnin sadasosia.
    sadasosat - tämä on ehkä turhaa arkistotiedoston nimessä. Luo väliaikainen muuttuja VTIME ja määritä sille nykyinen aika ilman viimeisiä kolmea merkkiä
    aseta VTIME=%aika:~0,-3%
    Nyt VTIME = 14:30:59, mutta merkkiä ":" ei voi käyttää tiedoston nimessä, joten korvaamme sen pisteellä.
    aseta VTIME=%VTIME::=.%
    Muuttuja VTIME saa arvon 14.30.59 Tiedostonimelle se käy.

    Aloitetaan arkistointi:

    Nyt voit luoda erätiedoston sisällöllä:

    Aseta VDATE=%päivämäärä:~3%
    md c:\%VDATE%
    aseta VTIME=%aika:~0,-3%
    aseta VTIME=%VTIME::=.%
    rar a -r C:\%VDATE%\%VTIME%.rar "C:Program filesfar*.*"

    Tällainen erätiedosto voidaan suorittaa automaattisen latauksen kautta tai osana komentosarjaa, kun käyttäjä kirjautuu toimialueelle tai käyttämällä ajastinta tiettynä ajankohtana, ja sinulla on aina aikajärjestetyt arkistot kriittisistä tiedoista.

    Luo arkistoja käyttäjäprofiilimuuttujien avulla.

    Tämä erätiedosto luo arkistoja Win2K/XP-käyttäjien My Documents -kansion sisällöstä ja sijoittaa ne hakemistoihin
    C:ARHIVMy DocumentsUsernameDateTime

    Muuttujia USERPROFILE, USERNAME, WINDIR käytetään, joten tämä erätiedosto ei toimi WIN9X:ssä. (Vaikka voit lisätä komentoja autoexec.bat-tiedostoon näiden muuttujien arvojen asettamiseksi, jos haluat, ja käyttää sitä yhden käyttäjän versiossa vähäisin tai ilman muutoksia). Erätiedoston sisältö on kommentoitu, eikä sen pitäisi aiheuttaa liikaa ongelmia, kun olet selvittänyt edellisen esimerkin:

    @kaiku pois
    rem FROM-muuttuja on asetettu - mistä saa tietoa arkistointia varten
    set FROM=%USERPROFILE%Omat asiakirjat
    rem Muuttuja TO on asetettu - minne arkistot sijoitetaan
    set TO=C:arhivMy Documents\%USERNAME%
    rem Luo TO-hakemisto
    md "%TO%"
    rem Muodosta alihakemiston nimi nykyisestä päivämäärästä
    rem nykyinen päivämäärä oletusasetuksissa Win2K:lle - ma 25.4.2005
    rem nykyinen päivämäärä oletusasetuksissa WinXP:lle - 25.04.2005
    rem Nykyisestä päivämäärästä lähtien muodostamme alihakemiston nimen - 25.04
    rem Windir-oletusarvo WinXP:lle on C:WINDOWS ja Win2K:lle C:WINNT
    JOS /I %Windir% == C:WINNT GOTO Win2K
    aseta vdate=%DATE:~0,-5%
    SIIRRY SetFileName
    : Win2K
    aseta vdate=%DATE:~3,-5%
    rem Muodostetaan arkistotiedoston nimi nykyisestä ajasta - 12:00:00.99
    rem , hylkäämme sekunnin sadasosat ja korvaamme merkin: merkillä. Tulos - 12.00.00
    :SetFileName
    aseta vtime=%TIME:~0,-3%
    aseta vtime=%vtime::=.%
    rem Luo alihakemisto arkistotiedostolle
    md "%TO%\%VDATE%"
    rem Arkistointikomento. -r-kytkintä tarvitaan alikansioiden arkistointiin
    rem-vaihtoehto ARJ-arkistointia varten: arj a -r "%TO%\%VDATE%\%VTIME%.arj" "%FROM%*.*"
    rem Käytettäessä RAR arkistointi:
    rar a -r "%TO%\%VDATE%\%VTIME%.rar" "%FROM%*.*"

    Komentojen suorittaminen aikataulussa.

    WIN2K/XP:ssä on komentorivi-apuohjelmaAT,jonka avulla voit suorittaa komennon tai erätiedoston määrätty aika paikallisessa tai etätietokoneessa. Jotta AT-komentoa voisi käyttää, Task Scheduler -palvelun on oltava käynnissä (yleensä käynnistetty oletusarvoisesti, kun järjestelmä asennettiin).

    AT [\tietokoneen nimi] [ [koodi] | /POISTAA]

    [\tietokoneen nimi] aikaan

    [ /JOKAINEN:päivä[,...] | /NEXT:day[,...]] "komento"

    \tietokoneen nimi Etätietokoneen nimi. Jos tämä parametri jätetään pois,

    käyttämällä paikallista tietokonetta.

    koodi Ajastetun tehtävän järjestysnumero. Määritetään, jos sinun on peruutettava jo ajoitettu tehtävä näppäimellä /poistaa.

    /poistaa Peruuta ajoitettu tehtävä. Jos tehtäväkoodi jätetään pois,

    peruuttaa kaikki määritetylle kohdalle ajoitetut tehtävät

    tietokone.

    /Joo Peruuta vahvistuskehote, kun peruutat kaikki

    ajoitetut tehtävät.

    aika Komennon aloitusaika.

    /interaktiivinen Salli tehtävän vuorovaikutus käyttäjän kanssa,

    käynnissä tietokoneessa, kun tehtävä on käynnissä. Ilman tätä avainta käynnistetyt tehtävät ovat näkymättömiä tietokoneen käyttäjälle.

    /joka päivä[,...] Tehtävä käynnistetään määritettyinä viikonpäivinä tai

    kuukausi. Jos päivämäärä jätetään pois, käytetään kuluvaa päivää

    /seuraava päivä[,...] Tehtävä suoritetaan seuraavana määritettynä viikonpäivänä

    (esimerkiksi ensi torstaina). Jos päivämäärä jätetään pois,

    Kuukauden nykyistä päivää käytetään.

    "tiimi" Komento- tai erätiedoston nimi.

    Esimerkkejä käytöstä:

    "herätyskellon" analogi - ponnahdusikkunat tekstillä, jotka muistuttavat nykyistä tai määritetty käyttäjä tarpeesta ryhtyä toimiin. Käytä apuohjelmaa lähettääksesi viestin käyttäjälleNET.EXE

    KLO 13:50 net.exe lähetä * Kahviaika

    KLO 17.50 net.exe lähettää Käyttäjälle Kotiinmenonajan

    AT \SERVER 13:45 net.exe lähettää Palvelin on käynnistettävä uudelleen

    Aikataulutettujen tehtävien luettelon tarkasteleminen:

    Jo ajoitettujen tehtävien poistaminen:

    KLO 3 /POISTA- poista tehtävä numero 3

    AT /POISTA /KYLLÄ- poista kaikki tehtävät

    "Ohjauspaneeli" - "Ajoitettujen tehtävien" avulla voit tarkastella, muokata ja poistaa komennon luomia tehtäviä AT tehtäviä.

    Pysäytä ja käynnistä järjestelmäpalvelut.

    Voit pysäyttää ja käynnistää Win2K/XP-palvelut komentoriviltä käyttämällä NET.EXE-komentoa

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

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

    On mahdollista käyttää sekä lyhyitä että kokoisia nimiä ("Dnscache" - lyhyt, "DNS-asiakas" - koko nimi palvelut). Palvelun nimi, joka sisältää välilyönnit, on lainausmerkeissä. Esimerkki "DNS-asiakas" -palvelun uudelleenkäynnistämisestä

    verkkopysäkki "DNS-asiakas"

    net start "DNS-asiakas"

    Sama, käyttäen lyhyttä nimeä:

    net stop Dnscache

    net start Dnscache

    Palvelun koko nimi voidaan kopioida kohdasta "Palvelut" -< Имя службы >- "Ominaisuudet" - "Näyttönimi"

    Palveluiden hallintaan on paljon kätevämpää käyttää PsTools-apuohjelmien PsService.exe-apuohjelmaa, joka ei vaadi asennusta ja toimii kaikissa Windows-käyttöjärjestelmissä. Palvelun käynnistämisen ja pysäyttämisen lisäksi sen avulla voit etsiä tiettyä palvelua tietokoneilta paikallinen verkko, kyselypalvelun tila ja määritykset, käynnistystyypin muuttaminen, palvelun keskeyttäminen, jatkaminen, uudelleenkäynnistys.

    Voit työskennellä järjestelmäpalvelujen kanssa Windows XP:ssä käyttämällä apuohjelmaa sc.exe, joka mahdollistaa palvelun pysäyttämisen / käynnistämisen, mutta myös sen tilan, käynnistys- ja toimintaparametrien kyselyn, kokoonpanon muuttamisen ja työskentelyn paitsi järjestelmäpalvelujen, myös ohjainten kanssa. Jos sinulla on oikeudet, on mahdollista hallita palveluita paitsi paikallisella, myös etäkoneella. Esimerkkejä:
    sc.exe pysäyttää DNS-välimuistin- Pysäytä DNSCache-palvelu paikallisessa tietokoneessa.
    sc \192.168.0.1 kysely DNSCache- kysy DNSCache-palvelun tilaa tietokoneelta IP-osoitteella 192.168.0.1
    sc \COMP käynnistä DNSCache käynnistä DNSCache-palvelu COMP-koneella
    Saat vihjeen apuohjelman käyttöön kirjoittamalla:
    sc /?

    ERRORLEVEL-muuttujan arvon tulostaminen näytölle.

    Tämä yksinkertainen erätiedosto näyttää ERRORLEVEL-muuttujan arvon tietyllä komentorivillä. Ensin tarkistetaan ainakin yhden tuloparametrin olemassaolo, ja jos mitään ei ole määritetty, annetaan virheilmoitus ja poistuminen tapahtuu. Jos vähintään yksi parametri on määritetty, syöttöparametrit huomioidaan komentorivi ja suoritetaan, ja ERRORLEVEL-arvo palautetaan ECHO-komennolla. Tiedoston sisältö (nimesin sille echoEL.bat):

    @kaiku pois
    jos "%1" NEQ "" GOTO PARMOK
    ECHO ERRORLEVEL-arvon määrittämiseksi on asetettava komentorivi
    poistu
    : PARMOK
    %1 %2 %3 %4 %5 %6 %7 %8
    ECHO % 1 % 2 % 3 % 4 % 5 % 6 % 7 % 8 ERRORLEVEL = % ERRORLEVEL %

    Esimerkkejä käynnistämisestä:
    echoEL.bat NETOSAITE
    - NET SHARE -komento suoritetaan (anna luettelo jaetuista verkkoresursseista) ja ERRORLEVEL-koodi annetaan
    echoEL.bat NET SHARE X"="C:
    - komento NET SHARE X:=C: suoritetaan (luo jaettu verkkoresurssi jonka nimi on X ja polku aseman C juurihakemistoon:) Huomaa, että =-symboli on lainausmerkeissä.
    Yllä luetellut vaihtoehdot asettavat oikean komentorivin. Mutta yritä antaa väärä parametri NET.EXE:lle tai komento, jota ei ole ollenkaan, niin näet, minkä arvon ERRORLEVEL saa. JA HUOMAA, että komentorivi on todella KÄYNNISSÄ ja esimerkiksi vaihtoehto "echoEL.bat format A:" aloittaa levykkeen alustamisen asemassa A:.

    Vuoropuhelu käyttäjän kanssa

    Dialogia varten käyttäjän kanssa voit käyttää komentoa:
    SET /P< имя переменной >=< текст >
    jonka suorittamisen jälkeen näyttö tulee näkyviin tekstiviesti < текст >ja odottaa vastaustekstin kirjoittamista. Esimerkki - suoritamme salasanapyynnön ja annamme sen arvon muuttujalle "pset":

    Set /p pset="Anna salasana - "
    echo salasana on - %pset%

    haittaa tätä menetelmää on mahdotonta jatkaa erätiedoston suorittamista ilman käyttäjän vastausta, joten hyvin usein he käyttävät asettamisen sijaan kolmannen osapuolen ohjelmia. Yksi heistä - CHOICE.COM Lataa (1,7 kt) .
    CHOICE antaa käyttäjälle tekstiviestin ja odottaa, että jokin annetuista vastausvaihtoehdoista valitaan (näppäimistön näppäinpainallukset). Valinnan tulosten perusteella muodostetaan ERRORLEVEL-muuttuja, jonka arvo on yhtä suuri kuin valinnan järjestysnumero. Oletuksena on kaksi vaihtoehtoa - K tai N. Jos vastaus on K - niin ERRORTASO=1, jos N - niin ERRORTASO=2. Useampaa kuin 2 valintaa voidaan käyttää ja on mahdollista asettaa oletusvalinta, kun käyttäjä tietty aika ei painanut mitään näppäintä. Komentorivimuoto:

    CHOICE valinnat] c,nn]
    /C[:]valinnat - määrittää kelvolliset valinnat. Jos ei asetettu - YN
    /N - älä näytä vaihtoehtoja.
    /S - pienet kirjaimet ja isot kirjaimet ovat erilaisia.
    /T[:]c,nn - Oletusvalinta on "c" "nn" sekunnin kuluttua
    text - kyselynä tulostettava tekstimerkkijono

    Luodaan erätiedosto, joka esittelee CHOICE:n käyttöä. Se reagoi näppäinten "1", "2", 3 ja "0" painamiseen. "0" painaminen lopettaa, ja loput painaminen - viesti käyttäjälle. Jos mitään ei paineta 10 sekunnin kuluessa - valmis.

    @ECHO POIS
    :VALINTA
    VALINTA /C:1230 /T:0,10 Oma valinta
    JOS %ERRORLEVEL% EQU 4 GOTO EXIT
    echo Valintasi=%ERRORLEVEL%
    GOTO CHOICE
    :POISTU

    Nyt käyttämällä CHOICE voit luoda erätiedostoja, joiden logiikan käyttäjä voi itse määrittää.

    Viiveet erätiedostoissa

    Aikoinaan, takaisin DOSissa, kätevällä SLEEP-komennolla järjestettiin odotus erätiedostossa, mutta sitten se jostain syystä siirtyi tavallisesta Windowsin asennussarjasta lisäresurssisarjaan. Voit yksinkertaisesti kopioida sen sieltä system32-hakemistoon ja käyttää sitä erätiedostoissasi.

    : SLEEP N - missä N on viiveen sekuntimäärä.

    Jos Resource Kit ei ole käsillä, voit käyttää aiemmin käsiteltyä CHOISE-komentoa näyttämättä tekstiä ja luomalla automaattinen vastaus nn sekunnin kuluttua (1-99):

    Choice.com /T:y,10 /N - 10 sekunnin viive

    Universaalimpi menetelmä perustuu silmukkarajapinnan pingiin vaaditulla määrällä paketteja. Ping silmukkaliittymään (isäntänimi - localhost tai IP-osoite 127.0.0.1) suoritetaan ilman varsinaista tiedonsiirtoa, ts. lähes välittömästi, ja pingien välinen aika on 1 sekunti. Määrittämällä pingien lukumäärän "-n"-näppäimellä saat n sekunnin viiveen:

    Ping 127.0.0.1 -n 30 > null - antaa 30 sekunnin viiveen

    Etsi tietokoneita, jotka käyttävät sovellusta

    Tämän skriptin toteuttamiseen käytetään paketin apuohjelmia. PSTools(Lyhyt kuvaus). Luodaan erätiedosto, joka etsii paikallisverkosta tietokoneita, joissa on suoritettava ohjelma, jonka nimi (nimen alkuosa) annetaan parametrina käynnistyksen yhteydessä, esimerkiksi peli . Jos se löytyy, ADMINCOMP-tietokoneeseen lähetetään viesti ja havaittu sovellus pakotetaan. Hakuun käytämme Pslist.exe-apuohjelmaa ja analysoimme sen palautuskoodin. ERRORLEVEL-muuttujan arvo nolla tarkoittaa, että apuohjelma on löytänyt etätietokoneesta prosessin, joka vastaa hakuehtoja. Hakuprosessin nimi asetetaan parametriksi erätiedostoa suoritettaessa. Nimetään joukkotiedostomme psl.bat. Ajo parametrin kanssa näyttäisi tältä:
    psl.bat peli
    Ensin meidän on tarkistettava, onko parametri asetettu komentorivillä käynnistyksen yhteydessä, ja jos sitä ei ole asetettu, annamme käyttäjälle viestin ja poistumme suorituksesta. Jos parametri on asetettu, siirry "PARMOK"-tarraan:
    @kaiku pois
    jos "%1" NEQ "" GOTO PARMOK
    ECHO Sinun on asetettava hakuprosessin nimi
    poistu
    : PARMOK
    Nyt meidän on varmistettava, että tietokoneiden IP-osoitteet luodaan johdonmukaisesti PSlist-komentoriville. Helpoin tapa tehdä tämä on asettaa väliaikainen ympäristömuuttuja (voimassa vain erätiedoston keston ajan) osoitteen vakiokomponentin arvoon (esimerkiksi - 192.168.0.) ja alemman osan laskettuun arvoon. osa (esimerkiksi välillä 1-254). Oletetaan esimerkiksi, että meidän on tarkistettava tietokoneet osoitealueella:
    192.168.0.1 - 192.168.0.30:
    aseta IPTMP=192.168.0. - osoitteen yläosa
    set /A IPLAST=1 - alaosa. /A-näppäin tarkoittaa laskettua numeerista lauseketta
    aseta IPFULL=%IPTMP%%IPLAST% - arvo täydellinen IP-osoite.
    PSlistin komentorivi näyttää tältä:
    pslist \%IPFULL% %1
    Nyt ei jää muuta kuin ajaa PSlist syklisesti, lisäämällä yksi osoitteen alimpaan osaan jokaisessa jaksossa, kunnes sen arvo saavuttaa 30, ja analysoida ERRORLEVEL-arvo suorituksen jälkeen. Tuloksen analysoimiseksi suoritamme siirron komennolla:
    SIIRRY REZULT%ERRORLEVEL%
    tarjoaa siirtymisen REZULT0-merkkiin, kun prosessi havaitaan, ja REZULT1:een
    2013-08-25 14:35:35: Artikkelit : Tietoturva : Ohjelmistot . Piditkö siitä?
  • Tässä artikkelissa:

    • Muuttujien määritelmä
    • Komentorivimuuttujat (bat-tiedoston kutsuparametrit)
    • JOS-ehtolauseke
    • Toiminnot
    • Paluuarvojen käyttäminen (ohjelman poistumiskoodin käsittely)

    Muuttujien määritelmä

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

    SET-lauseke on käyttöjärjestelmän vaihtoehtojen laajennus. Se määrittää muuttujan, jonka arvo korvaa sen nimen aina, kun tätä nimeä käytetään prosenttimerkkien välissä. Joten jos annetaan (muuttuja, jota monet pelit käyttävät äänikortti tietokone):

    SET BLASTER=A220 I5 D1 P330

    sitten kun käytät seuraavaa rakennetta erätiedostossa:

    ECHO %BLASTER%

    näytössä näkyy "A220 I5 D1 P330". SET-käskyllä ​​määritettyjä muuttujia kutsutaan ympäristömuuttujat ympäristö (ympäristö) ja ovat näkyvissä suorituksen jälkeen DOS:n uudelleenkäynnistykseen asti (jos sitä ei ole muutettu manuaalisesti muistissa). Toisin sanoen sitä voidaan käyttää yhdestä erätiedostosta tai ohjelmasta sen jälkeen, kun se on määritetty toisessa. Tunnetuin on PATH-muuttuja, joka on joukko polkuja tiedostojen nopeaan löytämiseen. Se on asetettu autoexec.bat-tiedostoon.

    Komentorivin muuttujat
    (bat-tiedoston kutsuparametrit)

    %<цифра 0-9>

    Kuten millä tahansa kielellä, kielellä erätiedostot bat-tiedoston parametreina on mahdollista käyttää muuttujia.

    Yhteensä voi olla 10 samanaikaisesti olemassa olevaa riippumatonta muuttujaa. Kirjoittamiseen monimutkaiset ohjelmat tämä on melko pieni, vaikka 3-4 riittää usein normaaliin työhön. Muuttujan arvo on yhtä suuri kuin vastaavan parametrin arvo komentoriviltä. Muuttuja %0 sisältää .bat-tiedoston nimen ja polun siihen, jos se on määritetty. Eli jos suoritat abc.bat-tiedoston seuraavilla parametreilla:

    abc.bat a bc def

    silloin %0 sisältää arvon abc.bat , %1 sisältää arvon a , %2 sisältää bc ja %3 def . Tätä ominaisuutta käytetään laajasti yleisten erätiedostojen luomiseen, kun käsitellään toistuvia toimintoja.

    Jos haluat saada yli 10 muuttujaa komentoriviltä, ​​voit käyttää SHIFT-komentoa.

    SHIFT-komento sallii yli 10 komentorivin valinnan käytön, mutta aikaisemmat vaihtoehdot menetetään vastaavasti. Toisin sanoen SHIFT-komento siirtää kaikkia muuttujien arvoja yhden askeleen vasemmalle. Toisin sanoen muuttuja %0 sisältää arvon, joka sisältyi aiemmin muuttujaan %1, ja muuttuja %1 sisältää muuttujan %2 arvon ennen siirtoa. Kuitenkin, tämä operaatio on peruuttamaton, eli muuttujia on mahdotonta siirtää taaksepäin.

    JOS-ehtolauseke

    Onneksi, komentojen tulkki Nykyaikaisten Windows 2000:n ja vanhempien käyttöjärjestelmien cmd.exe tukee komentolohkoja haararakenteissa, mikä eliminoi tunnistettujen IF:ien tarpeen. Komentolohkot on suljettu suluissa. Se näyttää tältä (matkii C/C++ sisennystyyliä):

    jos kunto (

    Rem "sitten" haarakomennot

    Rem...

    ) muu (

    Rem 'else' -haarakomennot

    Rem...

    Konkreettinen esimerkki käyttö:

    @kaiku pois

    setBUILDMODE=%1

    jos "%BUILDMODE%" == "" (

    Echo FAIL: Argumentti vaaditaan ^(--debug, --release^)

    Poistu /b 1

    rem Poista kaikki tavuviivat argumentista käsittelyn yksinkertaistamiseksi

    aseta BUILDMODE=%BUILDMODE:-=%

    jos "%BUILDMODE%" == "debug" (

    Aseta CCFLAGS=/Od /MDd /Z7

    ) muu (

    Aseta CCFLAGS=/O2 /MD

    Mielestäni sen kanssa on jo täysin mahdollista elää. Mutta kuten aina, elämä ei ole niin helppoa kuin miltä näyttää. On yksi ongelma. Silloin ja muissa lohkoissa käytetyt muuttujat laajennetaan ennen kuin nämä lohkot alkavat suorittaa, ei suorituksen aikana. Annetussa esimerkissä tämä ei aiheuta ongelmia, mutta seuraavassa se:

    jos "%BUILDMODE%" == "debug" (

    Echo INFO: Ympäristön virheenkorjaustilan asettaminen

    Aseta OPTFLAGS=/Od

    Aseta CCFLAGS=%OPTFLAGS% /MDd /Z7

    ) muu (

    Echo INFO: Ympäristön vapautustilan asettaminen

    Aseta OPTFLAGS=/O2

    Aseta CCFLAGS=%OPTFLAGS% /MD

    Varma on, että molemmissa lohkoissa OPTFLAGS-muuttuja korvataan ennen kuin sitä muutetaan tämän lohkon suorituksen aikana. Vastaavasti arvo, joka OPTFLAGSilla oli tämän if-lohkon suorittamisen alussa, korvataan arvolla CCFLAGS.

    Tämä ongelma ratkaistaan ​​käyttämällä viivästettyä muuttujan laajennusta. Muuttujat sisällä !…! %…% sijasta laajennetaan arvoihinsa vain suoran käytön hetkellä. Tämä tila oletuksena pois käytöstä. Voit ottaa sen käyttöön joko käyttämällä /V:ON-kytkintä, kun kutsut cmd.exe -tiedostoa, tai käyttämällä komentoa:

    itse bat-tiedoston tekstissä. Toinen tapa näyttää minulle sopivammalta - ei ole kovin siistiä vaatia jotakuta suorittamaan komentosarjasi tietyllä parametrilla.

    Edellinen "väärä" esimerkki voidaan tämän jälkeen korjata seuraavasti:

    setlocal enabledelayedexpansion

    jos "%BUILDMODE%" == "debug" (

    Echo INFO: Debug mode -ympäristön määrittäminen

    Aseta OPTFLAGS=/Od

    Aseta CCFLAGS=!OPTFLAGS! /MDd /Z7

    ) muu (

    Echo INFO: Vapautustilan ympäristön määrittäminen

    Aseta OPTFLAGS=/O2

    Aseta CCFLAGS=!OPTFLAGS! /MD

    Nyt tämä on melkein täysimittainen jos-niin-muut lohko. Melkein, koska jos jossakin kaikukomennossa kohtaat sulkevan sulkumerkin, sinun on poistettava se ^-symbolilla, muuten jäsentäjä hämmentyy ...

    Mutta joka tapauksessa, se on paljon parempi kuin mieletön määrä tarroja ja siirtymiä.

    Toiminnot

    Onko mahdollista luoda funktio bat tiedostoon? Kyllä sinä voit. Lisäksi joskus se on jopa välttämätöntä. Totta, sitä voidaan kutsua funktioiksi ehdollisesti.

    Kutsukomennolla on erityinen syntaksi, jonka avulla voit hypätä samassa bat-tiedostossa olevaan otsikkoon muistaen paikan, josta tämä puhelu soitettiin:

    call:label argumentteja

    Paluu funktiosta tapahtuu komennolla:

    exit /b [valinnainen paluukoodi]

    /b-näppäin on tässä erittäin tärkeä: ilman sitä toiminto ei poistu, vaan komentosarja yleensä.

    Saat lisätietoja kirjoittamalla komentoriville:

    puhelu/?

    poistu /?

    Mielenkiintoista on, että kutsukomento tällä syntaksilla tukee rekursiiviset puhelut Kanssa automaattinen luominen uusi kehys muuttujaargumenteille %0-%9. Joskus tästä voi olla apua. Tässä on klassinen esimerkki rekursiivisesta tekijälaskennasta komentokielellä:

    @kaiku pois

    call:factorial %1

    kaiku %RESULT%

    poistu

    rem Toiminto kertoimien arvon laskemiseen

    rem Kirjautuminen:

    rem %1 Numero, jolle haluat laskea kertoimen

    rem lähtö:

    rem %TULOS% Factorial-arvo

    :factorial

    jos % 1 == 0 (

    Aseta TULOS=1

    Poistu /b

    jos % 1 == 1 (

    Aseta TULOS=1

    Poistu /b

    aseta /a PARAM=%1 - 1

    call:factorial %PARAM%

    aseta /a TULOS=%1 * %TULOS%

    poistu /b

    Esimerkki työstä:

    > factorial.bat 10

    3628800

    Palautusarvojen käyttäminen
    (käsittelee ohjelman poistumiskoodia)

    Mikä tahansa ohjelma työnsä lopussa palauttaa käyttöjärjestelmälle sen valmistumiskoodin. On tapana palauttaa nolla onnistumisesta, muuten virhekoodi. Joskus, tai pikemminkin usein, ohjelma "tahallisesti" palauttaa nollasta poikkeavan arvon voidakseen "oppia" joitain yksityiskohtia sen toiminnasta erätiedostossa. Esimerkiksi ohjelma palauttaa painetun näppäimen koodin ja .bat-tiedosto suorittaa sille erilaisia ​​toimintoja.

    Kuinka erätiedosto voi selvittää suoritetun ohjelman poistumiskoodin? Tätä varten on ERRORLEVEL-avainmuuttuja.

    Esimerkki erätiedostosta virhetasoilla:

    @ECHO POIS

    REM Suorita ohjelma prg1.exe

    PRG1.EXE

    REM-poistumiskoodin analyysi

    JOS VIRHETASO 2 SIIRRY TIEDOSTOON EI LÖYDYNYT

    JOS VIRHETASO 1 SIIRRY WRITEERRORIIN

    JOS VIRHETASO 0 SIIRRY POISTUMISEKSI

    GOTO ONEEXIT

    :TIEDOSTOA EI LÖYTYNYT

    ECHO-virhe! Tiedostoa ei löytynyt!

    GOTO ONEEXIT

    :WRITEERROR

    ECHO Kirjoitusvirhe!

    GOTO ONEEXIT

    :EXITOK

    ECHO-ohjelma suoritettu onnistuneesti.

    GOTO ONEEXIT

    :ONEEXIT

    Kiinnitä huomiota - poistumiskoodin analyysi ei aloita nollasta, vaan suurimmasta mahdollisesta arvosta. Tosiasia on, että tällainen tarkistus tarkoittaa: "jos virhetaso on suurempi tai yhtä suuri kuin arvo, niin ...". Eli jos tarkistamme nollasta alkaen, mikä tahansa arvo on tosi ensimmäisellä rivillä, mikä ei ole totta.

    Tämä on yleisin virhe tällaisissa ohjelmissa.

    Muuttujat määrittävät Cmd.exe-ympäristön. Ne määräävät paitsi komentotulkin käyttäytymisen, myös itse käyttöjärjestelmän. Muuttujat tulisi jakaa kahteen tyyppiin, joista jokaisella on ainutlaatuiset ominaisuudet: järjestelmä ja paikallinen. Ensimmäisen tyypin avulla voit määrittää globaalin käyttöjärjestelmäympäristön toiminnan työskentelyn aikana. Paikalliset muuttujat määrittävät ympäristön toiminnan yksinomaan tietyssä Cmd.exe-esiintymässä. Tämä on huomattava keskeisenä erona.

    Se puhuu järjestelmämuuttujista, se on esiasennettu käyttöjärjestelmään ja sitä voivat käyttää kaikki sovellukset. Jos haluat tehdä muutoksia niihin, sinulla on oltava järjestelmänvalvojan käyttöoikeudet. Yleisin käyttötapa on tarjota järjestelmän käynnistystehtävä. Kun tällainen tapahtuma toteutetaan tietty käyttäjä, voimme puhua mahdollisuudesta käyttää paikallisia muuttujia.

    Alla on luettelo olemassa olevista muuttujaluokista niiden prioriteetin tärkeyden perusteella (laskevassa järjestyksessä):

    • Sisäänrakennettu järjestelmä. Niitä on kutsuttava vakavimmaksi, mikä tarjoaa Erityistä huomiota käynnissä.
    • Järjestelmänäkymän muuttujat liittyvät HKEY_LOCAL_MACHINE.
    • Muuttujat paikallinen näkymä, liittyy käyttäjään HKEY_CURRENT_USER.
    • Täysi lista muuttujat ja ympäristöt, jotka löytyvät Autoexec.bat-asiakirjasta.
    • Täydellinen luettelo muuttujista ja ympäristöistä, jotka löytyvät järjestelmän käynnistyskomentosarjasta. Tietyissä tilanteissa se ei ehkä ole.
    • Vuorovaikutteisesti sovelletut muuttujat kirjoitetulle skriptille tai eräasiakirjalle.

    Paikalliseen tai järjestelmäluokkaan kuuluvista muuttujista on melko pitkä luettelo. Tähän asiaan on kiinnitettävä enemmän huomiota.

    Paikalliset muuttujat

    Nimi Tiedot

    %ALLUSERSPROFILE%

    Antaa tietoja siitä, missä tarkalleen Kaikki käyttäjät -profiili sijaitsee

    Tarjoaa oletussijainnin ohjelmille

    Voit saada polun käytettyyn kansioon

    Tarjoaa komentorivin, jota käytettiin Cmd.exe:n nykyisen esiintymän suorittamiseen

    Antaa sen toimialueen ohjaimen nimen, joka todentaa tietyn istunnon

    Voit tarjota CA-vaihtoehtoja varsinaiselle tulkille. Pääset käyttöösi käyttämällä Cmd.exe-tiedostoa

    Antaa verkkotunnuksen nimen, jolla on luettelo käyttäjätileistä

    Antaa järjestelmään kirjautuneen käyttäjän nimen

    Palauttaa nykyisen käyttäjän tilin sijainnin

    Järjestelmän muuttujat

    Mahdollistaa kelvollisten komentojen käsittelijän laajennusten versionumeron ilmoittamisen

    Antaa sen laitteen nimen, jolla työtä tehdään

    Palauttaa polun suoritettavaan komentotulkkiin

    Tarjoaa oikeat tiedot. On huomattava, että on tarkoitus käyttää päivämäärää /t vastaavaa muotoa. Kaikki tiedot määritetystä komennosta voidaan saada suoraan sivuston vastaavasta osiosta

    Käytetään antamaan viimeksi käytetyn komennon virhekoodi. Vakiotilanteessa arvo on nollasta poikkeava

    Antaa käyttäjän hakemistoon liitetyn työaseman nimen. Vaaditaan asennus päähakemiston sijainnin perusteella

    Tarjoaa polun käyttäjän päähakemistoon. On määritettävä päähakemiston sijaintitietojen perusteella

    Tarjoaa polun käyttäjän jaettuun kotihakemistoon. On määritettävä päähakemiston sijaintitietojen perusteella

    %NUMBER_OF_PROCESSORS%

    Määrittää prosessorien määrän tietyssä laitteessa

    Välittää tietoa siitä, mikä nimi käyttöjärjestelmällä on tietty laite. Joidenkin käyttöjärjestelmien nimen näyttämisessä on tiettyjä ominaisuuksia, ja tämä on otettava huomioon

    Asettaa hakupolun ohjelmien löytämiseen

    Tarjoaa luettelon asiakirjalaajennuksista, jotka käyttöjärjestelmä pitää suoritettavina

    %PROCESSOR_ARCHITECTURE%

    Käytetään, kun sinun on hankittava tietyn prosessorin arkkitehtuuri

    %PROCESSOR_IDENTFIER%

    Tarjoaa lyhyttä tietoa prosessorista

    %PROCESSOR_LEVEL%

    Antaa tietoja prosessorin versionumerosta

    Tarjoaa minkä tahansa kokonaisluvun välillä 0-32767 mukaan lukien

    Antaa sen aseman nimen, johon Windows XP:n juurihakemisto on kirjoitettu

    Tarjoaa sijainnin järjestelmähakemisto OS

    Nämä muuttujat ovat järjestelmä- ja käyttäjämuuttujia. Näin voit suorittaa samat tehtävät, kun erilaisia ​​tilanteita. Tarjoaa väliaikaisia ​​kansioita, joita kaikki käyttäjät voivat käyttää. Tietyissä ohjelmissa on käytettävä TEMP:tä tai TMP:tä.

    Tarjoaa tietoa nykyisestä ajasta. Käyttää samaa ajan /t-näyttömuotoa.

    Mahdollistaa käyttöjärjestelmän hakemiston palauttamisen

    Ympäristömuuttujien asettaminen

    Jos haluat luoda, poistaa tai paljastaa ympäristömuuttujan, käytä erityinen joukkue aseta. Erottuva piirre on muuttujien säätö yksinomaan nykyisen kuoren ympäristössä.

    Tietyn muuttujan antamiseksi on tarkoitus kirjoittaa CS:ään:

    aseta muuttujan_nimi

    Toisen muuttujan lisääminen tehdään kirjoittamalla:

    aseta muuttujannimi=arvo

    Poistotoimenpiteen suorittamiseksi kannattaa määrätä rivi:

    aseta muuttujan_nimi=

    Järjestelmä on asetettu käyttämään useimpia olemassa olevia merkkejä osoittamaan arvojen roolia. Prodels voidaan myös sisällyttää tähän. Hakeaksesi tiettyjä hahmoja, sinun on ensin kirjoitettava (^) tai laitettava lainausmerkkeihin. Jos tätä ei tehdä, on olemassa virheellisen suorituksen tai virheen mahdollisuus. On tarpeen harkita useita yksinkertaisia ​​esimerkkejä. Oletetaan, että haluamme luoda uuden&name-muuttujan. Tarkasteltavan tehtävän toteuttamiseksi CS:ään syötetään seuraava:

    aseta varname=new^&name

    Voit yrittää olla käyttämättä erikoismerkkiä (^), mutta tämä on mahdotonta. Syynä on jatkuva sama virheilmoitus.

    Kun muuttuja on asetettu, ei ole väliä mitä kirjaimia käytetään - isoja vai pieniä. Rekisteriä ei huomioida. Siellä on yksi erottava piirre- muuttuja näytetään edelleen täsmälleen sellaisena kuin se syötettiin. Tämä helpottaa havaintotehtävää, jos käytät eri rekistereitä erottamiseen nimiä kirjoitettaessa.

    Korvaus ympäristömuuttujissa

    On olemassa tapa korvata tietyt arvot ympäristömuuttujissa suoraan CS:stä tai komentosarjasta. Tehtävän suorittamiseksi on suositeltavaa käyttää prosenttisymboleja. Se näyttää tältä:

    %muuttujan_nimi%

    Sen oletetaan osoittavan sitä tosiasiaa, että Cmd.exe:n on välittömästi päästävä tietyn muuttujan arvoihin. Merkkikohtaista vertailua ei suoriteta. On tärkeää pitää mielessä, että itse substituutiota ei pidetä rekursiivisena. Varmistus suoritetaan vain kerran.

    12.2.2015 21.1K

    Miksi maailmassa on tällainen kaaos? Kyllä, koska järjestelmämme ylläpitäjä unohti tehtävänsä. Tai vain kadottanut maailmamme cmd-komentojen luettelon. Vaikka tämä on jokseenkin omaperäinen katsaus olemassa olevaan asioiden järjestykseen, se kuitenkin heijastaa osaa tarvitsemastamme totuudesta: komentorivin avulla voit helposti puhdistaa tietokoneesi:

    Mikä on komentorivi

    Komentorivi on yksinkertaisin työkalu tietokoneen käyttöjärjestelmän hallintaan. Hallinta tapahtuu useiden varattujen komentojen ja merkkijoukon avulla tekstinäppäimistö ilman hiiren syöttöä Windows-käyttöjärjestelmässä).

    Käytössä olevissa järjestelmissä UNIX-pohjainen kun työskentelet komentorivin kanssa, voit käyttää hiirtä.

    Osa komennoista tuli meille MS-DOS:sta. Komentoriviä kutsutaan myös konsoliksi. Sitä ei käytetä vain käyttöjärjestelmän hallintaan, vaan myös hallintaan säännöllisiä ohjelmia. Useimmiten harvoin käytetyt komennot sisältyvät tällaiseen komentosarjaan.

    etu cmd-sovelluksia tärkeimmistä komennoista on, että se kuluttaa mahdollisimman vähän järjestelmäresursseja. Ja tämä on tärkeää hätätilanteissa, kun kaikki tietokoneen teho on tavalla tai toisella mukana.

    cmd toteuttaa mahdollisuuden suorittaa ja luoda kokonaisia ​​erätiedostoja, jotka ovat tietyssä järjestyksessä, jossa joukko komentoja (skriptejä) suoritetaan. Tämän vuoksi niitä voidaan käyttää tiettyjen tehtävien automatisointiin ( tilinhallinta, tietojen arkistointi ja paljon muuta).

    Komento Windows-kuori komentojen muokkaamiseen ja uudelleenohjaamiseen tiettyihin käyttöjärjestelmän apuohjelmiin ja työkaluihin on Cmd.exe-tulkki. Se lataa konsolin ja ohjaa komennot järjestelmän ymmärtämään muotoon.

    Työskentely komentorivin kanssa Windows-käyttöjärjestelmässä

    Voit soittaa konsoliin Windowsissa useilla tavoilla:


    Molemmat menetelmät sisältävät konsolin käynnistämisen nykyisenä käyttäjänä. Eli kaikilla oikeuksilla ja rajoituksilla, joita sen roolille käyttöjärjestelmässä määrätään. Jos haluat suorittaa cmd:n järjestelmänvalvojan oikeuksilla, sinun on valittava ohjelman kuvake Käynnistä-valikosta ja sisään kontekstivalikko valitse sopiva kohde:


    Kun olet suorittanut apuohjelman, voit saada taustatieto komennoista ja niiden kirjoitusmuodosta konsolissa. Voit tehdä tämän kirjoittamalla ohjelauseen ja painamalla "Enter":

    Peruskomennot tiedostojen ja hakemistojen käsittelyyn

    Yleisimmin käytetyt komennot ovat:

    • RENAME - nimeä hakemistot ja tiedostot uudelleen. Komentosyntaksi:

    NIMI UUDELLEEN | REN [asema/polku] alkuperäinen tiedoston/hakemiston nimi | loppu tiedostonimi
    Esimerkki: NIMEÄ UUDELLEEN C:UsershomeDesktoptost.txt test.txt

    • DEL (ERASE) - käytetään poistamaan vain tiedostoja, ei hakemistoja. Sen syntaksi on:

    DEL | ERASE [käsittelytapa] [tiedostonimi]
    Esimerkki: Del C:UsershomeDesktoptest.txt/P

    Käsittelymenetelmä on erityinen lippu, jonka avulla voit toteuttaa tietyn ehdon tiedostoa poistaessasi. Esimerkissämme lippu "P" mahdollistaa lupaikkunan näyttämisen jokaisen tiedoston poistamista varten:


    Lisätietoja "käsittelymenetelmä"-parametrin mahdollisista arvoista on Windows-käyttöjärjestelmän teknisessä dokumentaatiossa.

    • MD - voit luoda kansion määritettyyn polkuun. Syntaksi:

    MD [asema:] [polku]
    Esimerkki:
    MD C:UsershomeDesktoptest1test2

    Esimerkki luo alikansion test2 kansioon testi1. Jos yhtä polun juurikansioista ei ole, se myös luodaan:

    • R.D. ( RMDIR) - poista tietty kansio tai kaikki määritetyn polun hakemistot. Syntaksi:

    RD | RMDIR [prosessiavain] [asema/polku]
    Esimerkki:
    rmdir /s C:UsershomeDesktoptest1test2

    Esimerkissä käytetään s-lippua, jonka seurauksena polussa määritettyjen hakemistojen koko haara poistetaan. Siksi sitä ei pidä käyttää tarpeettomasti rmdir-komento tällä käsittelyavaimella.

    Seuraavassa osiossa tarkastellaan lähemmin cmd-verkkokomentoja.

    Verkkokomennot

    Komentorivin avulla voit hallita paitsi PC:n tiedostojärjestelmää myös sen verkostoitumisominaisuudet. Osa verkkokomennot Konsoli sisältää suuren määrän operaattoreita verkon valvontaan ja testaukseen. Olennaisimmat niistä ovat:

    • ping - komennolla seurataan mahdollisuuksia verkkoyhteys PC. lähetetään etätietokoneelle määrätty määrä paketit ja lähetettiin sitten takaisin niille. Pakettien lähetysaika ja hävikkiprosentti otetaan huomioon. Syntaksi:

    ping [-t] [-a] [-n määrä] [-l koko] [-f] [-i TTL] [-v-tyyppi] [-r määrä] [-s count] [(-j isäntälista | - k hostlist)] [-w interval] [kohdetietokoneen_nimi]

    Esimerkki komennon toteutuksesta:
    ping esimerkki.microsoft.com
    ping -w 10000 192.168.239.132

    Viimeisessä cmd ping -komennon esimerkissä pyyntö lähetetään määränpäähän määritetyllä IP-osoitteella. Pakettien välinen aika on 10 000 (10 sekuntia). Oletusarvoisesti tämä parametri on 4000:

    • tracert - käytetään määrittämään verkkopolku Vastaanottaja määritetty resurssi lähettämällä erityisen kaikuviestin protokollan kautta
    • ICMP (Control Message Protocol). Kun komento on suoritettu parametreilla, näkyviin tulee luettelo kaikista reitittimistä, joiden kautta viestipolku kulkee. Ensimmäinen elementti luettelossa on ensimmäinen reititin pyydetyn resurssin puolella.

    cmd-komennon jäljityssyntaksi on:
    tracert [-d] [-h max_hops] [-j host_list] [-w interval] [kohderesurssin_nimi]
    Toteutusesimerkki:
    tracert -d -h 10 microsoft.com

    Esimerkki jäljittää reitin määritettyyn resurssiin. Tämä lisää toiminnan nopeutta d-parametrin käytön vuoksi, mikä estää komentoa yrittämästä saada lupaa lukea IP-osoitteita. Siirtymien (hypyjen) määrä on rajoitettu 10:een aseta arvo parametri h. Oletusarvoisesti hyppyjen määrä on 30:


    sammutus [(-l|-s|-r|-a)] [-f] [-m [\PCName]] [-t xx] [-c "viestit"] [-d[u][p]: xx:yy]
    Esimerkki:
    sammutus /s /t 60 /f /l /m \191.162.1.53

    Etätietokone (m) suljetaan määritetyllä IP-osoitteella (191.162.1.53) 60 sekunnin kuluttua (t). Tämä pakottaa sinut kirjautumaan ulos kaikista sovelluksista ( f ) ja nykyisestä käyttäjäistunnosta ( l ).