Dela via


cmd

Startar en ny instans av kommandotolken cmd.exe. Om det används utan parametrar cmd visas version och copyrightinformation för operativsystemet.

Note

Användare som vill ha mer avancerade funktioner uppmuntras att utforska PowerShell för förbättrad skriptning och automatisering.

Syntax

cmd [/c|/k] [/s] [/q] [/d] [/a|/u] [/t:{<b><f> | <f>}] [/e:{on | off}] [/f:{on | off}] [/v:{on | off}] [<string>]

Parameters

Parameter Description
/c Utför kommandot som anges av <string> och avslutar sedan kommandoprocessorn.
/k Utför kommandot som anges av <string> och håller kommandoprocessorn igång.
/s När det används med /c eller /k, utlöser särskilda icke-parsningsregler som tar bort de första och sista citattecknarna " (<string>) runt men lämnar resten av kommandot oförändrat.
/q Inaktiverar eko.
/d Inaktiverar körning av AutoRun-kommandon.
/a Formaterar kommandoutdata som American National Standards Institute (ANSI).
/u Formaterar kommandoutdata som Unicode.
/t:{<b><f> | <f>} Ställer in bakgrundsfärgerna (b) och förgrundsfärgerna (f).
/e:on Aktiverar kommandotillägg.
/e:off Inaktiverar kommandotillägg.
/f:on Aktiverar slutförande av fil- och katalognamn.
/f:off Inaktiverar slutförande av fil- och katalognamn.
/v:on Aktiverar fördröjd miljövariabelexpansion.
/v:off Inaktiverar fördröjd miljövariabelexpansion.
<string> Anger det kommando som du vill utföra.
/? Visar hjälp i kommandotolken.

I följande tabell visas giltiga hexadecimala siffror som du kan använda som värden för <b> och <f>:

Value Color
0 Black
1 Blue
2 Green
3 Aqua
4 Red
5 Purple
6 Yellow
7 White
8 Gray
9 Light blue
a Light green
b Light aqua
c Light red
d Light purple
e Light yellow
f Bright white

Remarks

  • Om du vill omdirigera kommandoutdata till indata från ett annat kommando använder du pipe-operatorn (|). For example:

    <command1> | <command2>
    
  • Operatorn double pipe (||) används endast för att köra nästa kommando om föregående kommando misslyckas. I det angivna scenariot command2 körs endast om command1 det misslyckas. For example:

    <command1> || <command2>
    
  • Om du vill omdirigera kommandoutdata till en fil använder du hakparentestecknet > större än vinkel. For example:

    <command1> > <file1.txt>
    
  • Om du vill gruppera eller kapsla flera kommandon tillsammans använder du &. For example:

    <command1> & <command2>
    
  • Om du vill använda flera kommandon för <string>avgränsar du dem med kommandoavgränsaren &&. For example:

    <command1> && <command2> && <command3>
    

    Note

    När du använder &&körs kommandot nedan && endast om föregående kommando har slutförts. Cmd kör det första kommandot och fortsätter till nästa endast om det tidigare kommandot lyckades. Annars körs inte efterföljande kommandon om föregående kommando misslyckas.

  • Et- &, pipe |- och parenteserna ( ) är specialtecken som måste föregås av escape-tecknet ^ eller citattecknen när du skickar dem som argument.

  • Om ett kommando slutför en åtgärd returneras en slutkod på noll (0) eller ingen slutkod.

  • Om katalogsökvägen, filerna eller all information som du anger innehåller blanksteg måste du använda dubbla citattecken (" ") runt texten, till exempel "Computer Name". For example:

    mkdir Test && mkdir "Test 2" && move "Test 2" Test
    
  • Du måste använda citattecken runt följande specialtecken: & <> [ ] | { } ^ = ; ! ' + , ' ~ [tomt utrymme].

  • Om du anger /c eller /kbevaras processerna cmd , resten av <string>och citattecknen endast om alla följande villkor uppfylls:

    • Du använder /sinte heller .
    • Du använder exakt en uppsättning citattecken.
    • Du använder inga specialtecken inom citattecknen, till exempel: & <> ( ) @ ^ |.
    • Du använder ett eller flera blankstegstecken inom citattecknen.
    • Inom <string> citattecken är namnet på en körbar fil.

    Om de tidigare villkoren inte uppfylls <string> bearbetas genom att undersöka det första tecknet för att kontrollera om det är ett inledande citattecken. Om det första tecknet är ett inledande citattecken tas det bort tillsammans med det avslutande citattecknet. All text som följer de avslutande citattecknen bevaras.

  • Om du inte anger /dcmd söker du efter följande registerundernycklar:

    • HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun\REG_SZ

    • HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun\REG_EXPAND_SZ

    Om en eller båda registerundernycklarna finns körs de före alla andra variabler.

  • Du kan inaktivera kommandotillägg för en viss process med hjälp /e:offav . Du kan aktivera eller inaktivera tillägg för alla cmd kommandoradsalternativ på en dator eller användarsession genom att ange följande REG_DWORD värden:

    • HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\EnableExtensions\REG_DWORD

    • HKEY_CURRENT_USER\Software\Microsoft\Command Processor\EnableExtensions\REG_DWORD

    Ange värdet REG_DWORD till antingen 0x1 (aktiverat) eller 0x0 (inaktiverat) i registret med hjälp av Regedit.exe. Användardefinierade inställningar har företräde framför datorinställningar, och kommandoradsalternativ har företräde framför registerinställningar.

    Caution

    Systemet kan skadas om du redigerar registret på felaktigt sätt. Innan du gör ändringar i registret bör du säkerhetskopiera alla värdefulla data på datorn.

  • När du aktiverar kommandotillägg påverkas följande kommandon:

    • assoc
    • call
    • chdir (cd)
    • color
    • del (erase)
    • endlocal
    • for
    • ftype
    • goto
    • if
    • mkdir (md)
    • popd
    • prompt
    • pushd
    • set
    • setlocal
    • shift
    • start (inkluderar även ändringar i externa kommandoprocesser)
  • Om du aktiverar fördröjd miljövariabelexpansion kan du använda utropstecknet (!) för att ersätta värdet för en miljövariabel vid körning.

  • Fil- och katalognamn har inte aktiverats som standard. Du kan aktivera eller inaktivera filnamnskomplettering för en viss process av cmd kommandot med /f:{on | off}.

  • Du kan aktivera eller inaktivera komplettering av fil- och katalognamn för alla processer i cmd kommandot på en dator eller för en användarinloggningssession genom att ange följande REG_DWORD värden:

    • HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\CompletionChar\REG_DWORD

    • HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\PathCompletionChar\REG_DWORD

    • HKEY_CURRENT_USER\Software\Microsoft\Command Processor\CompletionChar\REG_DWORD

    • HKEY_CURRENT_USER\Software\Microsoft\Command Processor\PathCompletionChar\REG_DWORD

    Om du vill ange det REG_DWORD värdet kör du Regedit.exe och använder det hexadecimala värdet för ett kontrolltecken för en viss funktion (till exempel 0x9 är TABB och 0x08 är BACKSTEG). Använd värdet [0x20] för tomt utrymme eftersom det inte är ett giltigt kontrolltecken. Användardefinierade inställningar har företräde framför datorinställningar, och kommandoradsalternativ har företräde framför registerinställningar.

    Caution

    Systemet kan skadas om du redigerar registret på felaktigt sätt. Innan du gör ändringar i registret bör du säkerhetskopiera alla värdefulla data på datorn.

  • Om du aktiverar komplettering av fil- och katalognamn med hjälp /f:onav använder du CTRL+D för komplettering av katalognamn och CTRL+F för komplettering av filnamn. Den enda skillnaden mellan tangentkombinationerna CTRL+D och CTRL+F är att CTRL+D endast matchar katalognamn och CTRL+F matchar både fil- och katalognamn. Om du använder slutförande av fil- och katalognamn på de inbyggda katalogkommandona cdantas md, eller rd, katalogslut.

  • Om du trycker på CTRL+D eller CTRL+F slutförs fil- och katalognamnet. Dessa tangentkombinationsfunktioner lägger till ett jokertecken i <string> om det inte finns något, skapar en lista över sökvägar som matchar och visar sedan den första matchande sökvägen. Om ingen av sökvägarna matchar, pipar funktionen för fil- och katalognamnskomplettering och ändrar inte visningen.

    • Om du vill gå igenom listan med matchande sökvägar trycker du på CTRL+D eller CTRL+F upprepade gånger.
    • Om du vill gå bakåt i listan trycker du på SKIFT och CTRL+D eller CTRL+F samtidigt.
    • Om du vill ta bort den sparade listan med matchande sökvägar och skapa en ny lista redigerar du <string> och trycker på CTRL+D eller CTRL+F.
    • Om du växlar mellan CTRL+D och CTRL+F tas den sparade listan med matchande sökvägar bort och en ny lista genereras.
  • Fil- och katalognamn slutförs korrekt bearbetar filnamn som innehåller blanksteg eller specialtecken om du placerar citattecken runt matchande sökväg.

  • Om du bearbetar fil- och katalognamnskomplettering inifrån <string>, vid den punkt <string> där slutförandet bearbetades, ignoreras alla delar av sökvägen till höger om markören.

Använda miljövariabler

Kommandogränssnittsmiljön cmd definieras av variabler som avgör beteendet för kommandogränssnittet och operativsystemet. Du kan definiera beteendet för kommandogränssnittsmiljön eller hela operativsystemmiljön med hjälp av två typer av miljövariabler, system och lokal. Systemmiljövariabler definierar beteendet för den globala operativsystemmiljön. Lokala miljövariabler definierar beteendet för miljön för den aktuella instansen av cmd.

Endast användare med administratörsbehörighet kan ändra systemvariabler. Dessa variabler används oftast i inloggningsskript. Lokala miljövariabler är bara tillgängliga när användaren som de skapades för är inloggad på datorn. Lokala variabler som anges i den HKEY_CURRENT_USER registreringsdatafilen är endast giltiga för den aktuella användaren, men definierar beteendet för den globala operativsystemmiljön.

I följande lista beskrivs de olika typerna av variabler i fallande prioritetsordning:

  1. Inbyggda systemvariabler.
  2. Systemvariabler som finns i den HKEY_LOCAL_MACHINE registreringsdatafilen.
  3. Lokala variabler som finns i den HKEY_CURRENT_USER bikupan.
  4. Alla miljövariabler och sökvägar som angetts i filen Autoexec.bat.
  5. Alla miljövariabler och sökvägar som anges i ett inloggningsskript (om det finns).
  6. Variabler som används interaktivt i ett skript eller en batchfil.

I kommandogränssnittet ärver varje instans av cmd miljön för det överordnade programmet. Därför kan du ändra variablerna i den nya cmd miljön utan att påverka miljön för det överordnade programmet.

Du kan visa miljövariablerna i din miljö genom att köra något av följande kommandon:

set
Get-ChildItem Env:

Ange miljövariabler

Om du vill visa en variabel skriver du:

set <VariableName>

Om du vill lägga till en variabel skriver du:

set <VariableName>=<value>

Om du vill ta bort en variabel skriver du:

set <VariableName>=

Du kan använda de flesta tecken som variabelvärden, inklusive tomt utrymme. Om du använder specialtecken <, >, |, & eller ^ måste du skriva escape-tecknet ^eller dubbla citattecken före dem. Om du använder dubbla citattecken inkluderas de som en del av värdet eftersom allt som följer likhetstecknet tas som värde. Tänk på följande exempel:

Om du vill skapa variabelvärdet New&Nameskriver du:

set <VariableName>=New^&Name

Om du vill skapa variabelvärdet "New&Name"skriver du:

set <VariableName>="New&Name"

Om du skriver set <VariableName>=New&Name (utan carat ^ eller dubbla citattecken) i kommandotolken kan följande felmeddelande visas:

"'Name' is not recognized as an internal or external command, operable program or batch file."

Variabelnamn är inte skiftlägeskänsliga. Visar dock set variabeln exakt som du skrev den. Du kan kombinera stora och små bokstäver i variabelnamnen för att göra koden mer läsbar, till exempel Användarnamn.

Note

  • Den maximala enskilda miljövariabelstorleken är 8 192 byte.
  • Den maximala totala storleken för alla miljövariabler, inklusive namn, värden och likhetstecken, är 65 536 tecken för en process.

Ersätta miljövariabelvärden

Om du vill ersätta variabelvärden i kommandoraden eller skripten omger du variabelnamnet i procenttecken (%VariableName%). På så sätt kan cmd du referera till variabelns värde i stället för att behandla det som literaltext. När ett skript körs cmd ersätter instanser av variabeln med dess värde. Om du till exempel använder %USERNAME% i ett skript ersätts det faktiska användarnamnet automatiskt. Variabelersättning är inte rekursiv. cmd kontrollerar variabler bara en gång.