Hjälp för Windows miljövariabler. Alla kommandon i alfabetisk ordning


    Team SETLOCAL används för att tillfälligt ändra värdena för miljövariabler i batchfiler Windows. Miljöändringar som görs efter att kommandot SETLOCAL har utförts är lokala för strömmen kommandofil. För att återställa deras tidigare värden måste du utfärda kommandot ENDLOCAL. När slutet av en batchfil nås, körs ENDLOCAL-kommandot automatiskt för alla giltiga SETLOCAL-kommandon som utfärdas i den batchfilen och värdena för alla Miljövariableråterställs till tillståndet innan SETLOCAL-kommandot utfördes.

Kommandoradsformat:

SETLOCAL | AKTIVERA FÖRDRÖJD EXPANSION | INAKTIVERA FÖRDRÖJD EXPANSION

Ändra SETLOCAL-kommandot när utökad kommandobearbetning aktiveras:

Kommandot SETLOCAL accepterar valfria argument: AKTIVERA EXTENSIONS eller DISABLEEXTENTIONS. Detta gör att du kan aktivera eller inaktivera utökad kommandobearbetning innan kommandot körs. Se cmd /? för en detaljerad förklaring. ENABLEDELAYEDEXPANSION / DISABLEDELAYEDEXPANSION Aktiverar eller inaktiverar fördröjd expansion av miljövariabel. Se SET /? för en detaljerad förklaring. Dessa ändringar gäller tills ENDLOCAL-kommandot matchas, oavsett initialtillståndet innan SETLOCAL-kommandot anropades.

Om kommandot SETLOCAL anropas med ett argument, ställer det in felkoden ERRORLEVEL. Om ett av de två giltiga argumenten anges kommer felkoden att vara noll, annars returneras 1 Denna egenskap kan användas i batchfiler för att avgöra om utökad kommandobearbetning är tillgänglig, till exempel:

VERIFIERA ANNAT 2>nul
SETLOCAL ENABLEEXTENSIONS
IF ERRORLEvel 1 eko Det går inte att aktivera avancerad bearbetning

Denna grupp av kommandon fungerar eftersom in tidigare versioner Kommandot CMD.EXE SETLOCAL anger inte värdet till ERRORLEVEL. Ett VERIFY-kommando med ett ogiltigt argument krävs för att ställa in ERRORLEVEL till ett värde som inte är noll.

När man använder miljövariabler i kommandofiler finns det en viss begränsning förknippad med att det tilldelade värdet förblir oförändrat när det ändras inom en grupp av kommandon som anges inom parentes, till exempel i kommandon OM eller FÖR. Att kringgå denna begränsning med hjälp av kommandoprocessorn startas med parametern /V:ON och istället för procenttecken för att erhålla det mottagna värdevariabel, används utropstecken. Dessutom är det möjligt att använda standardskallanseringen, men med lokal inkludering detta läge kommando:

Skillnaden i resultaten av att använda variabelvärden visas ganska tydligt av följande batchfil:


@ECHO AV
ställ in VAR=före
om "%VAR%" == "före" (
ställ in VAR=efter
om "!VAR!" == "efter" @echo Med procenttecken=%VAR% , Med frågetecken=!VAR!

Team ställ in VAR=efter exekveras i en subrutin avgränsad med parentes och, om kommandot tas bort Setlocal EnableDelayedExpansion eller inte att använda för att få värdet på en variabel VAR utropstecken, kommer dess värde att förbli det gamla (det som ställdes innan subrutinen gick in). Ett liknande problem uppstår när värdet på en variabel ändras inom kommandoslingan. FÖR. Till exempel, för att få en lista över filer i den aktuella katalogen, kommer en batchfil som denna inte att fungera:

set LIST=
för %%i i (*) ställ in LIST=%LIST% %%i
eko %LIST%

Variabelt värde LISTA kommer inte att ändras inuti slingan. För att detta ska ske måste batchfilen ändras enligt följande:

Setlocal EnableDelayedExpansion
set LIST=
för %%i i (*) ställ in LIST=!LIST! %%i
eko %LIST%
Nu, värdet på variabeln LISTA inuti en slinga FÖR kommer att ändras, sekventiellt anta värdena för filnamn separerade med mellanslag ( set LIST=!LIST! %%i)

div.main (marginal-left: 20pt; margin-right: 20pt)
Trösta Windows-kommandon NT

Inledningsvis utnyttjar många NT-användare inte de funktioner som konsolkommandon ger, eller använder dem inte fullt ut.

I det här materialet skulle jag vilja beskriva huvudpunkterna med att arbeta med konsolen. Varför, frågar du, behövs detta? Kunskap huvudkommandon låter dig automatisera arbetet genom att använda dem i batchfiler, men när du arbetar med nätverket är många av dem oersättliga. Allt ovanstående kommer huvudsakligen att gälla för Windows XP, men kan mycket väl vara tillämpligt på andra versioner av NT (4, 2000), om än med vissa begränsningar.
NT bygger på lite andra principer än Win9x. Men MS-DOS finns också, men endast som en virtuell maskin(NT Virtual DOS Machine, NTVDM). I själva verket är detta ett kommandoradsläge genom vilket verktyg och batchfiler skrivs in och körs.
Kommandoraden kan nås via Start-menyn/Program/Tillbehör/Kommandotolk.
Den huvudsakliga kommandoradstolken i NT är cmd.exe, den huvudsakliga beror på att det också finns en standard MS-DOS kommandotolk - command.com.
Genom att köra cmd.exe (via menyn eller Start/Run/cmd.exe) får vi ett fönster där du kan arbeta med kommandoraden. Dessutom, medan du redan är i det öppna kommandofönstret, kan du starta flera fler versioner av cmd. För att avsluta jobbet aktuell version du kan använda kommandot EXIT.
Det finns två driftlägen för cmd.exe - avancerad och standard. Avancerat läge fungerar med följande kommandon:
DEL eller RADERA; FÄRG; CD eller CHDIR; MD eller MKDIR; PROMPT; PUSHD; POPD; UPPSÄTTNING; SETLOCAL; ENDLOCAL; OM; FÖR; RING UPP; FLYTTA; GÅ TILL; START (anropet har också ändrats externa team); ASSOC; FTYPE.

CMD kommando
Allmän kommandosyntax:
CMD [kommando]
/C(/K) - Utför det angivna kommandot med/utan efterföljande avslutning.
Utför det angivna kommandot utan ytterligare slutförande.
/S - Ändra beteende efter /C eller /K (se nedan).
/Q - Inaktiverar läget för utmatning av kommandon till skärmen (ECHO).
/D - Inaktiverar körning av AutoRun-kommandon från registret (se nedan).
/A (/U) - Matar ut resultatet av kommandoexekveringen i ANSI/UNICODE-format.
/T:färg - Välj text/bakgrundsfärg (för mer information, se beskrivningen av COLOR nedan).
/E:ON(/E:OFF) - Aktivera/inaktivera kommandotillägg (se nedan).
/F:ON(/F:OFF) - Tillåt/inaktivera avslutande tecken för fil- och mappnamn (se nedan).
/V:ON(/V:OFF) - Aktivera/inaktivera lazy expansion av miljövariabler med hjälp av "!" som en separator. Till exempel tillåter /V:ON användning av!var! som en runtime-expansion av var. Var-syntaxen används för att expandera variabler när du anger dem, vilket resulterar i mycket olika resultat internt FÖR slinga.
COLOR parameter. Färgattribut anges som TVÅ hexadecimala siffror - den första anger bakgrundsfärgen och den andra anger textfärgen. Varje siffra kan ha följande betydelser: 0=svart, 1=blå, 2=grön, 3=ljusblå, 4=röd, 5=lila, 6=gul, 7=vit, 8=grå, 9=ljusblå, A =ljusgrön, B=ljusblå, C=ljusröd, D=ljuslila, E=ljusgul, F=ljusvit.
Om inget argument anges, återställer kommandot det ursprungliga färgvalet som det var när CMD.EXE kördes. Detta värde hämtas från det aktuella textfönstret, från /T-växeln eller från registervärdet DefaultColor.
Kommandot COLOR returnerar ett felkodsvärde på ERRORLEVEL 1 när man försöker anropa detta kommando med samma textfärg och bakgrundsfärgvärden.
Exempel: "COLOR fc" anger ljusröd text på en ljus vit bakgrund.
För att ange flera kommandon på en rad, separera dem med "&&" och omge dem inom citattecken. Av kompatibilitetsskäl är /X detsamma som /E:ON, /Y är detsamma som /E:OFF och /R är detsamma som /C. Alla andra kommandoradsväxlar ignoreras.
Om växlarna /C eller /K är specificerade, behandlas resten av kommandoraden efter växeln som kommandoraden och citattecken (") enligt följande regler:
1. Om alla följande villkor är uppfyllda bevaras citattecken på kommandoraden:
- /S-nyckeln saknas;
- det finns exakt två citattecken;
- det finns inga andra specialtecken mellan dem, till exempel: &<>()@^|;
- det finns ett eller flera mellanslag mellan dem;
- strängen inom citattecken är namnet på den körbara filen.
2. Annars är det första tecknet markerat och om det är ett citattecken tas det bort, det sista citattecknet på kommandoraden tas också bort och all text efter det sista citattecknet behålls.
Om /D-växeln inte är angiven på kommandoraden, kontrolleras värdena för variablerna REG_SZ eller REG_EXPAND_SZ för följande avsnitt av systemregistret när CMD.EXE startas:
HKEY_LOCAL_MACHINESoftwareMicrosoftCommand ProcessorAutoRun
och/eller
HKEY_CURRENT_USERSoftwareMicrosoftCommand ProcessorAutoRun
och om en eller båda av dem är närvarande, så avrättas de först.
Som standard är utökad kommandobearbetning aktiverad. För att inaktivera utökad bearbetning för ett specifikt samtal, använd /E:OFF-omkopplaren.
Du kan aktivera eller inaktivera utökad kommandobehandling för alla anrop till CMD.EXE på den här datorn eller för given användare, med hjälp av REGEDT32.EXE för att ställa in REG_DWORD-värdena systemregistret för avsnitt:
HKEY_LOCAL_MACHINESoftwareMicrosoftCommand ProcessorEnableExtensions
och/eller
HKEY_CURRENT_USERSoftwareMicrosoftCommand ProcessorEnableExtensions,
lika med 0x1 eller 0x0. Användarinställningar åsidosätter datorinställningar.
Kommandoradsväxlar åsidosätter i sin tur registerinställningar.
Lazy miljövariabel expansion är inte aktiverad som standard. Det kan aktiveras eller inaktiveras för ett specifikt CMD.EXE-anrop med /V:ON eller /V:OFF-tangenterna, eller med REGEDT32.EXE genom att ställa in REG_DWORD-värden i systemregistret för avsnitt:
HKEY_LOCAL_MACHINESoftwareMicrosoftCommand ProcessorDelayedExpansion
och/eller
HKEY_CURRENT_USERSoftwareMicrosoftCommand ProcessorDelayedExpansion
lika med 0x1 eller 0x0. Användarinställningar, som nämnts ovan, åsidosätter datorinställningar och kommandoradsnycklar åsidosätter i sin tur registerinställningar.
Om expansionen av lazy miljövariabel är aktiverad visas "!" (utropstecken) kan användas för att ersätta det aktuella värdet för en miljövariabel vid körning.
Aktivering/inaktivering av fördröjd expansion av miljövariabler för alla anrop till CMD.EXE på en given dator eller för en given användare är möjligt med REGEDT32.EXE med REG_DWORD-värdet i systemregistret för följande nycklar:
HKEY_LOCAL_MACHINESoftwareMicrosoftCommand ProcessorCompletionChar,
HKEY_LOCAL_MACHINESoftwareMicrosoftCommand ProcessorPathCompletionChar
och/eller
HKEY_CURRENT_USERSoftwareMicrosoftCommand ProcessorCompletionChar,
HKEY_CURRENT_USERSoftwareMicrosoftCommand ProcessorPathCompletionChar,
genom att ställa in deras hexadecimala värden till kontrollteckenkoden som används för den specifika funktionen (till exempel 0x4 för Ctrl-D eller 0x6 för Ctrl-F). Återigen, användarinställningar åsidosätter datorinställningar; Kommandoradsväxlar åsidosätter i sin tur registerinställningar.
Komplettering av fil- och mappnamn är inte heller aktiverat som standard. Detta kan åtgärdas med /F:ON eller /F:OFF omkopplarna.
Om komplettering är aktiverat med /F:ON kommandoradsomkopplare används två kontrolltecken: Ctrl-D för mappnamn och Ctrl-F för filnamn. För att inaktivera en specifik terminator i systemregistret används specialteckenkoden hexadecimalt värde blanksteg (0x20).
Komplettering anropas när ett av dessa två specialtecken skrivs in. Kompletteringsfunktionen tar sökvägssträngen till vänster om inmatningspunkten, lägger till ett jokertecken till den om det inte finns något, och konstruerar sedan en lista med sökvägar som matchar den resulterande definitionen. Det första elementet i denna lista med matchande sökvägar skrivs sedan ut. Om listan är tom, då ljudsignal och ingenting matas ut.
Efter det återinträde samma specialtecken får den att gå igenom alla matchande vägar. Tangenttryckning när du anger ett kontrolltecken kan du se listan över vägar i omvänd ordning. Om du ändrar utmatningsvägen och sedan anger kontrolltecknet igen, rensas och byggs den sparade listan ny lista sätt. Samma sak händer om du byter från en slutförandesymbol till en annan. Den enda skillnaden när man använder filterminatorn är att både sökvägen och filnamnet används för att bygga den matchande listan, medan när man använder mappterminatorn används endast sökvägen. När en mappterminator används i ett av de inbyggda mappmanipuleringskommandona (CD, MD eller RD), är mappterminatorn alltid underförstådd.
Terminatorn fungerar även korrekt med filnamn som innehåller mellanslag eller andra specialtecken, så länge den matchande strängen är omgiven av citattecken. Dessutom, om du flyttar insättningspunkten till vänster och sedan använder ett efterföljande tecken inom en rad, kommer den återstående texten till höger om insättningspunkten att kasseras.
Specialtecken som kräver citattecken:
<пробел>&(){}^=;!"+,`~

PROMT Team
Ändra kommandoraden cmd.exe.
PROMPT [text], där text är den nya kommandoradsprompten. Inbjudan kan innehålla vanliga tecken och följande koder:
$A - & (ampersand);
$B - | (vertikal stapel);
$C - ((vänster parentes);
$D - Aktuellt datum;
$E - ESC ( ASCII-tecken med kod 27);
$F -) (höger parentes);
$G - > (större än tecken);
$H - BACKSPACE (ta bort föregående tecken);
$L -< (знак "меньше");
$N - Aktuell disk;
$P - Aktuell disk och katalog;
$Q - = (lika tecken);
$S - (mellanslag);
$T - Aktuell tid;
$V - Antal Windows-versioner XP;
$_ - Vagnretur och linjematning;
$$ - $ (dollarsymbol).
När utökad kommandobearbetning är aktiverad stöder kommandot PROMPT följande ytterligare formateringstecken:
$+ - visa det nödvändiga antalet plustecken (+) beroende på det aktuella djupet på PUSHD-katalogstacken, ett tecken för varje sparad sökväg;
$M - visa fullständigt namn fjärrdisk associerad med namnet på den aktuella enheten, eller en tom sträng om den aktuella enheten inte är en nätverksenhet. Till exempel, om enhet E: är ansluten till nätverksresurs\ServerPrograms, när du använder kommandot PROMT $M$P$G, kommer kommandoradens promptformat att vara enligt följande: \ServerPrograms E:>.


Visa, ställa in och ta bort cmd.exe miljövariabler.

UPPSÄTTNING [variabel=[sträng]]

variabel Namnet på miljövariabeln.
linje Teckensträng, tilldelad den angivna variabeln.

Skriv SET utan parametrar för att visa aktuella miljövariabler.

Ändra SET-kommandot när du aktiverar utökad kommandobearbetning:

Om du när du anropar endast anger variabelnamnet utan likhetstecken och värde,
SET-kommandot kommer att skriva ut värdena för alla variabler vars namn börjar med
från den angivna raden. Till exempel:

SET P

Detta kommando kommer att skriva ut värdena för alla variabler vars namn börjar med "P".

Om variabelnamnet inte hittas i den aktuella miljön återkommer kommandot SET
kommer att ställa in felvärdet på ERRORLEVEL 1.

Kommandot SET tillåter inte ett likhetstecken i namnet
miljöfaktor.

SET-kommandot stöder ytterligare två omkopplare:

SET /A uttryck
SET /P variabel=

Omkopplaren /A indikerar att strängen till höger om likhetstecknet är numerisk
uttryck vars värde beräknas. Uttryckshanteraren är mycket
är enkel och stöder följande operationer, listade i fallande ordning
prioritet:


När du använder logiska eller binära operatorer måste du
omge uttryckssträngen inom citattecken. Alla icke-numeriska strängar i uttrycket
behandlas som namn på miljövariabler vars värden konverteras
V numerisk form innan användning. Om en variabel med angivet namn
inte definieras i systemet, ersätts ett nollvärde. Detta
låter dig utföra aritmetiska operationer med värdena för miljövariabler,
Dessutom behöver du inte ange %-tecken för att få värden. Om laget
SET /A anropas från kommandoraden, inte från en batchfil, den matas ut
den slutliga innebörden av uttrycket. Till vänster om valfri uppdragsoperatör
måste vara namnet på miljövariabeln. Numeriska värden anses som
decimaler om de inte föregås av ett 0x prefix för hexadecimala tal,
och 0 för oktala tal. Till exempel, siffrorna 0x12,
och 022 står för decimal nummer 18. Var uppmärksam på inspelningen
oktala tal: 08 och 09 är inte giltiga tal eftersom in
oktalt system I kalkyl används inte siffrorna 8 och 9.

Omkopplaren /P låter dig ställa in värdet på en variabel för den inmatade strängen
användare. Visar den angivna promptenString före läsning
inmatad sträng. PromptString-prompten kan vara tom.

Miljövariabelsubstitution kan utökas enligt följande:

%PATH:str1=str2%

kommer att utöka effekten av PATH-miljövariabeln genom att ersätta varje förekomst av "str1" i
utökat resultat på "str2". "str2" kan vara en tom sträng för
effektivt avlägsnande förekomster av "str1" från den utökade utgången. "str1" kan
börja med en asterisk, i vilket fall den matchar någon
start av den utökade utgången tills den första förekomsten av den återstående delen av "str1".

Du kan också använda förlängningssträngar.

%PATH:~10,5%

förlänger effekten av miljövariabeln PATH, använd sedan endast 5
tecken som börjar med det 11:e tecknet (hoppar över 10) utökade
resultat. Om längden inte anges används den återstående som standard.
variabelt värde. Om båda värdena (längd och antal tecken att hoppa över)
är negativa kommer nästa värde som används vara längden på variabelvärdet
miljö läggs till det angivna hoppvärdet eller den angivna längden.

%PATH:~-10%

extraherar de sista 10 tecknen i PATH-variabeln.

%PATH:~0,-2%

extraherar alla tecken i PATH-variabeln utom de sista 2.

Äntligen lagt till körtidsbindningsstöd för miljövariabler
miljö.
Som standard är detta stöd inaktiverat. /V kommandoradsomkopplare
CMD.EXE låter dig slå på och av den. För att komma åt hjälp, skriv CMD /?

Körtidsbindning för miljövariabler är användbar när du arbetar runt
begränsningar av tidig bindning, som inträffar när texten läses första gången
linje, inte när du kör den. Följande exempel visar det framväxande
problem när du använder tidig variabelbindning:

ställ in VAR=före
om "%VAR% " == "före" (
ställ in VAR=efter
if "%VAR%" == "efter" @echo Brödtext för den interna jämförelseoperatorn
)

Det här meddelandet kommer inte att visas, eftersom %VAR% i BÅDA IF-uttryck
ersätts vid första användningen i den första IF, inklusive i kroppen
den första IF-grenen, som är ett sammansatt uttryck. I IF inuti
sammansatt uttryck jämför faktiskt värdena för "före" och
"efter", vilket uppenbarligen är falskt. Följande exempel visar ett liknande fel:

set LIST=
för %i i (*) ställ in LIST=%LIST% %i
eko%LISTA%

V I detta fall listan över filer i den aktuella mappen kommer aldrig att byggas. Istället för
Därför kommer värdet på LIST-variabeln att vara namnet på den senast hittade filen.
Återigen, detta hände eftersom %LIST% bara ersätts en gång -
vid bearbetningstillfället FÖR uttryck när listan fortfarande är tom.
Faktum är att ovanstående utdrag motsvarar nästa exempel:

för %i i (*) gör set LIST=%i

där namnet på den senast hittade filen lagras i variabeln LIST.

Körtidsbindning för miljövariabler inträffar när
använder ett specialtecken ( utropstecken), betecknar
utför jämförelsen under körning. Om länkningsstöd är aktiverat
körtid, för att sedan uppnå de förväntade resultaten som anges ovan
kodavsnitten ska ändras enligt följande:

ställ in VAR=före
om "%VAR% " == "före" (
ställ in VAR=efter
om "!VAR! " == "efter" @echo Kropp för den interna jämförelseoperatorn
)

set LIST=
för %i in (*) ställ in LIST=!LIST! %i
eko%LISTA%

Flera variabler är tillgängliga när utökad kommandobearbetning är aktiverad
miljöer som inte visas i listan som visas när kommandot SET anropas.
Värdena för dessa variabler beräknas dynamiskt varje gång de hämtas.
Om användaren uttryckligen definierar variabler med ett av dessa namn,
då överlappar denna definition motsvarande dynamisk definition,
beskrivet nedan:

%CD% - expanderar till den aktuella katalograden.

%DATE% - expanderar kl dagens datum, med samma DATE-kommandoformat.

%TIME% - expanderar till det aktuella datumet med kommandot TIME.

%RANDOM% - expanderar till ett slumpmässigt decimaltal mellan 0 och 32767.

%ERRORLEVEL% - expanderar till det aktuella ERRORLEVEL-värdet

%CMDEXTVERSION% - expanderar till det aktuella värdet för den utökade kommandobearbetningsversionen.

%CMDCMDLINE% - expanderar till original kommandorad som orsakade
kommandoprocessor.

Miljövariabler inställda i min Windows XP, som har levt i 2 år utan ominstallation:

%ALLUSERSPROFILE% = C:\Documents and Settings\All Users
%CommonProgramFiles% = C:\Program Files\Common Files
%COMPUTERNAME% = "Datornamn"
%ComSpec% = C:\WINDOWS\system32\cmd.exe
%CYGWIN% = tty
%FP_NO_HOST_CHECK% = NEJ
%NUMBER_OF_PROCESSORS% = 2
%OS% = Windows_NT
%Path% = C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOW S\System32\Wbem
%PATHEXT% = .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.W SF;.WSH
%PROCESSOR_ARCHITECTURE% = x86
%PROCESSOR_IDENTIFIER% = x86 Family 6 Model 15 Steg 2, GenuineIntel
%PROCESSOR_LEVEL% = 6
%PROCESSOR_REVISION% = 0f02
%ProgramFiles% = C:\Program Files
%PROMPT% = $P$G
%SystemDrive% = C:
%SystemRoot% = C:\WINDOWS
%TEMP% = C:\DOCUME~1\"Användarnamn"\LOCALS~1\Temp
%TMP% = C:\DOCUME~1\"Användarnamn"\LOCALS~1\Temp
%USERDOMAIN% = "Datornamn"
%USERNAME% = "Användarnamn"
%USERPROFILE% = C:\Documents and Settings\"Användarnamn"
%windir% = C:\WINDOWS

I Windows XP, kommandotolken cmd.exe när lätt start, utan att ange kommandoradsparametrar, visar versionen av operativsystemet, information om upphovsrättsskyddet för OS-utvecklare och faktiskt själva kommandoraden, där du kan ange både kommandoradsparametern för själva programmet cmd.exe och alla externa kommandon, till exempel kommandot för att starta ett annat program eller standardkommando, såsom mkdir, del, etc. Om du anger kommandoradsparametrar får du naturligtvis några ytterligare egenskaper. Syntaxen i det här fallet är:

CMD [kommando]

Här anger kommandot faktiskt körbart kommando eller program. Du kan använda flera kommandon samtidigt, med en speciell avgränsare mellan dem - tecknen &&, och hela kombinationen av flera kommandon måste omges av citattecken, till exempel "kommando&&kommando&&kommando".

Nu, nästan i enlighet med den officiella Microsoft-dokumentationen (jag tog mig friheten att redigera den, vilket gör det lite mer förståeligt för folket, om detta ens är möjligt i det här fallet), kommer jag att försöka dechiffrera innebörden av varje parameter:

/?

Ringa upp hjälpen (mycket detaljerad, på grundval av vilken denna artikel faktiskt skrevs).

/A

Utdata av exekveringsresultat givet kommando i ANSI-format.

/C

Utför det givna kommandot och avslutar sedan (det vill säga konsolfönstret stängs).

/D

Inaktivering av körningen av AutoRun-kommandon (som är de första som körs automatiskt när cmd.exe anropas) specificerade i speciella registersektioner (parametrar som REG_SZ ställs in i det här avsnittet) och (parametrar som REG_EXPAND_SZ anges i detta avsnitt) .

/E:ON (/E:OFF)

Tillåta (neka) kommandotillägg. I Windows XP är utökad bearbetning av alla cmd.exe-kommandon aktiverad som standard. Denna inställning används för att aktivera/inaktivera tillägg för en specifik process.

Inaktivera eller aktivera avancerad bearbetning helt på den här datorn eller för specifika användare möjligt i registret, i avsnitten som motsvarar det önskade sammanhanget och .

Parametern "EnableExtensions"=dword:00000001 i dessa avsnitt aktiverar tillägg, och "EnableExtensions"=dword:00000000 inaktiverar dem, med användarinställningar som har företräde framför datorinställningar och värdet på skalparametern /E har företräde framför registerinställningar.

Med avancerad kommandobearbetning påverkar ändringar och/eller tillägg följande kommandon: assoc, anrop, chdir (cd), färg, del (radera), endlocal, for, ftype, goto, if, mkdir (md), popd, prompt, pushd, set, setlocal, shift, start (anrop av externa kommandon ); /F:ON (/F:OFF) - tillåter (förbjuder) komplettering av fil- och mappnamn (inaktiverat som standard) för ett specifikt cmd.exe-anrop. Tillräckligt bekväm funktion, som gör att du inte helt manuellt i konsolfönstret kan ange sökvägarna till filerna eller namnen på själva mapparna, utan att bara ange en del lång väg och genom att trycka på speciell kombination ge nycklar operativ system hitta lämpliga alternativ och välj helt enkelt det du behöver.

Om du vill aktivera eller inaktivera namnkomplettering för alla anrop till cmd.exe, gör du i registernycklarna (för lokal maskin), (För nuvarande användaren) Installera följande parametrar(standardvärden visas):

"CompletionChar"=dword:00000040
"PathCompletionChar"=dword:00000040

så att deras hexadecimala värden motsvarar kontrollteckenkoden som används för en viss funktion (till exempel 0 x 4 för Ctrl+D eller 0 x 6 för Ctrl+F). Detta kan göras av det välkända verktyget, som upprepade gånger nämns och beskrivs i vår tidning, TweakUI.

Användarinställningar har företräde framför datorinställningar, och värdet på /F-skalparametern har företräde framför registerinställningar.

Microsoft ger ett visst förtydligande angående användningen av den här funktionen: "Om komplettering är aktiverat med /F:ON kommandoradsväljare, används två kontrolltecken: Ctrl+D för mappnamn och Ctrl+F för filnamn. För att inaktivera ett specifikt kompletteringstecknet i systemregistret är specialteckenkoden det hexadecimala värdet för mellanslagstecknet (0 x 20) Completion anropas när ett av dessa två specialtecken skrivs in.

Kompletteringsfunktionen tar sökvägssträngen till vänster om inmatningspunkten, lägger till ett jokertecken till den om den inte har en och bygger sedan en lista med sökvägar som matchar den resulterande definitionen. Det första elementet i denna lista med matchande sökvägar skrivs sedan ut. Om listan är tom hörs ett pip och ingenting visas. Om du anger samma specialtecken igen går du sedan igenom alla matchande vägar.

Brådskande Skifttangenter när du anger ett kontrolltecken kan du se listan över vägar i omvänd ordning. Om du ändrar utmatningsvägen och sedan anger kontrolltecknet igen, rensas den sparade listan och en ny lista med sökvägar skapas. Samma sak händer om du byter från en slutförandesymbol till en annan. Den enda skillnaden när man använder filterminatorn är att både sökvägen och filnamnet används för att bygga matchningslistan, medan när man använder mappterminatorn används endast sökvägen.

När en mappterminator används i ett av de inbyggda mappmanipuleringskommandona (CD, MD eller RD), är mappterminatorn alltid underförstådd.

Terminatorn fungerar även korrekt med filnamn som innehåller mellanslag eller andra specialtecken, så länge den matchande strängen är omgiven av citattecken. Dessutom, om du flyttar insättningspunkten till vänster och sedan använder ett efterföljande tecken inom en rad, kommer den återstående texten till höger om insättningspunkten att kasseras.

Specialtecken som kräver citattecken:

<пробел> & () { } ^ = ; ! ’ + , ` ~ "

Allt klart?

/K

Utför ett givet kommando utan att senare avsluta (här stängs inte konsolfönstret).

/Q

Inaktivera utmatningen av kommandon till skärmen (ECHO OFF).

/R

Samma som /C.

/S

Ändra kommandobeteende efter /C eller /K.

/T:färg

Ställ in text och bakgrundsfärg för konsolfönstret.

Färgparametern har ett värde i form av två hexadecimala tal: den första anger fönstrets bakgrundsfärg och den andra anger texten i fönstret. Om färguppsättningen inte ändrades vid den tidpunkt då cmd.exe lanserades (till exempel genom en annan skalsession), är registerinställningen som definierar som standard utseende konsoler:

"DefaultColor"=dword:00000000

Motsvarigheten mellan dessa siffror och färger anges i tabellen.

Det vill säga, resultatet av att utföra detta kommando "CMD /T:7C" kommer att vara ljusröda bokstäver på en vit bakgrund.

/U

Mata ut kommandots resultat i Unicode-format.

/V:ON (/V:OFF)

Tillåt (inaktivera) fördröjd expansion av miljövariabler (för ett specifikt cmd.exe-anrop) med utropstecknet "!" som en separator. Till exempel tillåter /V:ON användning av!var! som en runtime-expansion av var. Var-syntaxen används för att expandera variabler på indata, vilket ger mycket olika resultat i en FOR-loop.

Dessutom kan fördröjd expansion av miljövariabler aktiveras eller inaktiveras i registret, i sektionerna (för den lokala datorn), (för den aktuella användaren) genom att ställa in parametern "DelayedExpansion"=dword:00000001 för att aktivera och "DelayedExpansion"= dword:00000000 för att inaktivera.

Användarinställningar har företräde framför datorinställningar, och värdet på /V-skalparametern har företräde framför registerinställningar.

När lat expansion av miljövariabler är aktiverad visas "!" (symbolen är ett utropstecken) kan användas för att ersätta det aktuella värdet på en miljövariabel vid körning.

/X

Betyder detsamma som /E:ON, av kompatibilitetsskäl.

/Y

Samma som /E:OFF.

Och till sist några mer värdefulla kommentarer.

Om växeln /C eller /K anges, behandlas resten av kommandoraden efter växeln som kommandoraden, och citattecken (") behandlas som sådana. Citattecken på kommandoraden bevaras om alla följande villkor är sanna:

  • /S-nyckeln saknas;
  • det finns exakt två citattecken;
  • Det finns inga andra specialtecken mellan dem, till exempel: &< > () @ ^ |;
  • det finns ett eller flera mellanslag mellan dem;
  • strängen inom citattecken är namnet på den körbara filen.

Annars är det första tecknet markerat och om det är ett citattecken tas det bort, det sista citattecknet på kommandoraden tas också bort och all text efter det sista citattecknet behålls.

Visa, ställa in och ta bort cmd.exe miljövariabler.

SET [variabel=[sträng]]

variabel Namnet på miljövariabeln.

sträng En teckensträng som tilldelas den angivna variabeln.

Skriv SET utan parametrar för att visa aktuella miljövariabler.

Ändra SET-kommandot när du aktiverar utökad kommandobearbetning:

Om du när du anropar endast anger variabelnamnet utan likhetstecken och värde,

SET-kommandot kommer att skriva ut värdena för alla variabler vars namn börjar med

från den angivna raden. Till exempel:

Detta kommando kommer att skriva ut värdena för alla variabler vars namn börjar med "P".

Om variabelnamnet inte hittas i den aktuella miljön återkommer kommandot SET

kommer att ställa in felvärdet på ERRORLEVEL 1.

Kommandot SET tillåter inte ett likhetstecken i namnet

miljöfaktor.

SET-kommandot stöder ytterligare två omkopplare:

SET /A uttryck

SET /P variabel=

Omkopplaren /A indikerar att strängen till höger om likhetstecknet är numerisk

uttryck vars värde beräknas. Uttryckshanteraren är mycket

är enkel och stöder följande operationer, listade i fallande ordning

prioritet:

() - gruppering

! ~ - - unära operatörer

*/% - aritmetiska operatorer

Aritmetiska operatorer

<< >> - binärt skift

& - binär OCH

^ - binärt exklusivt ELLER

| - binärt ELLER

= *= /= %= += -= - uppdrag

&= ^= |= <<= >>=

Utlåtandeavskiljare

När du använder logiska eller binära operatorer måste du

omge uttryckssträngen inom citattecken. Alla icke-numeriska strängar i uttrycket

behandlas som namn på miljövariabler vars värden konverteras

till numerisk form före användning. Om en variabel med det angivna namnet

inte definieras i systemet, ersätts ett nollvärde. Detta

låter dig utföra aritmetiska operationer med värdena för miljövariabler,

Dessutom behöver du inte ange %-tecken för att få värden. Om laget

SET /A anropas från kommandoraden, inte från en batchfil, den matas ut

den slutliga innebörden av uttrycket. Till vänster om valfri uppdragsoperatör

måste vara namnet på miljövariabeln. Numeriska värden behandlas som

decimal, om det inte föregås av ett 0x-prefix för hexadecimala tal,

och 0 för oktala tal. Till exempel, siffrorna 0x12,

och 022 representerar decimaltalet 18. Notera notationen

oktala tal: 08 och 09 är inte giltiga tal eftersom in

Det oktala talsystemet använder inte siffrorna 8 och 9.

/P-omkopplaren låter dig ställa in värdet på en variabel för den inmatade strängen

användare. Visar den angivna promptenString före läsning

inmatad sträng. PromptString-prompten kan vara tom.

Miljövariabelsubstitution kan utökas enligt följande:

%PATH:str1=str2%

kommer att utöka effekten av PATH-miljövariabeln genom att ersätta varje förekomst av "str1" i

utökat resultat på "str2". "str2" kan vara en tom sträng för

effektivt ta bort förekomster av "str1" från den utökade utmatningen. "str1" kan

börja med en asterisk, i vilket fall den matchar någon

start av den utökade utgången tills den första förekomsten av den återstående delen av "str1".

Du kan också använda förlängningssträngar.

förlänger effekten av miljövariabeln PATH, använd sedan endast 5

tecken som börjar med det 11:e tecknet (hoppar över 10) utökade

resultat. Om längden inte anges används den återstående som standard.

variabelt värde. Om båda värdena (längd och antal tecken att hoppa över)

är negativa kommer nästa värde som används vara längden på variabelvärdet

miljö läggs till det angivna hoppvärdet eller den angivna längden.

extraherar de sista 10 tecknen i PATH-variabeln.

extraherar alla tecken i PATH-variabeln utom de sista 2.

Äntligen lagt till körtidsbindningsstöd för miljövariabler

miljö. Som standard är detta stöd inaktiverat. /V kommandoradsomkopplare

CMD.EXE låter dig slå på och av den. För att komma åt hjälp, skriv CMD /?

Körtidsbindning för miljövariabler är användbar när du arbetar runt

begränsningar av tidig bindning, som uppstår när texten läses första gången

linje och inte när du kör den. Följande exempel visar det framväxande

problem när du använder tidig variabelbindning:

ställ in VAR=före

Om "%VAR%" == "före" (

if "%VAR%" == "efter" @echo Brödtext för den interna jämförelseoperatorn

Detta meddelande kommer inte att visas, eftersom %VAR% i BÅDA IF-uttryck

ersätts vid första användningen i den första IF, inklusive i kroppen

den första IF-grenen, som är ett sammansatt uttryck. I IF inuti

sammansatt uttryck jämför faktiskt värdena för "före" och

"efter", vilket uppenbarligen är falskt. Följande exempel visar ett liknande fel:

set LIST=

För %i i (*) ställ in LIST=%LIST% %i

i det här fallet kommer listan med filer i den aktuella mappen aldrig att byggas. Istället för

Därför kommer värdet på LIST-variabeln att vara namnet på den senast hittade filen.

Återigen, detta hände eftersom %LIST% bara ersätts en gång -

i ögonblicket för bearbetning av FOR-uttrycket, när listan fortfarande är tom.

Faktum är att ovanstående kodavsnitt motsvarar följande exempel:

för %i i (*) ställ in LIST= %i

där namnet på den senast hittade filen lagras i variabeln LIST.

Körtidsbindning för miljövariabler inträffar när

använda ett specialtecken (utropstecken) för att indikera

utför jämförelsen under körning. Om länkningsstöd är aktiverat

körtid, för att sedan uppnå de förväntade resultaten som anges ovan

utdragen bör ändras enligt följande:

ställ in VAR=före

Om "%VAR%" == "före" (

Ställ in VAR=efter

Om "!VAR!" == "efter" @echo Kropp för intern jämförelseoperator

Ställ in LIST=

För %i in (*) ställ in LIST=!LIST!%i

Flera variabler är tillgängliga när utökad kommandobearbetning är aktiverad

miljöer som inte visas i listan som visas när kommandot SET anropas.

Värdena för dessa variabler beräknas dynamiskt varje gång de hämtas.

Om användaren uttryckligen definierar variabler med ett av dessa namn,

då överlappar denna definition motsvarande dynamiska definition,

beskrivet nedan:

%CD% - expanderar till den aktuella katalograden.

%DATE% - Expanderas till det aktuella datumet med samma DATE-kommandoformat.

%TIME% - expanderar till det aktuella datumet med kommandot TIME.

%RANDOM% - expanderar till ett slumpmässigt decimaltal mellan 0 och 32767.

%ERRORLEVEL% - expanderar till det aktuella ERRORLEVEL-värdet

%CMDEXTVERSION% - expanderar till det aktuella versionsvärdet

avancerad kommandobearbetning.

%CMDCMDLINE% - Expanderas till den ursprungliga kommandoraden som anropade

kommandoprocessor.







2024 gtavrl.ru.