Sdílet prostřednictvím


cmd

Spustí novou instanci interpretu příkazu cmd.exe. Pokud se používá bez parametrů, cmd zobrazí informace o verzi a autorských právech operačního systému.

Note

Uživatelům, kteří hledají pokročilejší funkce, doporučujeme prozkoumat PowerShell pro vylepšené skriptování a automatizaci.

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 Provede příkaz určený příkazem <string> a potom ukončí procesor příkazů.
/k Provede příkaz určený <string> a zachová procesor příkazů spuštěný.
/s Při použití s /c nebo /k, aktivuje speciální neanalyzující pravidla, která odstraní první a poslední uvozovky (") kolem <string> , ale zbytek příkazu zůstane beze změny.
/q Vypne ozvěnu.
/d Zakáže spouštění příkazů AutoRun.
/a Formátuje výstup příkazu jako American National Standards Institute (ANSI).
/u Formátuje výstup příkazu jako Unicode.
/t:{<b><f> | <f>} Nastaví barvy pozadí (b) a popředí (f).
/e:on Povolí rozšíření příkazů.
/e:off Zakáže rozšíření příkazů.
/f:on Povolí dokončování názvů souborů a adresářů.
/f:off Zakáže dokončení názvu souboru a adresáře.
/v:on Povolí opožděné rozšíření proměnných prostředí.
/v:off Zakáže odložené rozšíření proměnných prostředí.
<string> Určuje příkaz, který chcete provést.
/? Zobrazí nápovědu na příkazovém řádku.

Následující tabulka uvádí platné šestnáctkové číslice, které můžete použít jako hodnoty pro <b> a <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

  • Pokud chcete přesměrovat výstup příkazu na vstup jiného příkazu, použijte operátor pipe (|). For example:

    <command1> | <command2>
    
  • Operátor dvojitého kanálu (||) slouží ke spuštění dalšího příkazu pouze v případě, že předchozí příkaz selže. V daném scénáři se provede pouze v případě, command2 že command1 selže. For example:

    <command1> || <command2>
    
  • Pokud chcete přesměrovat výstup příkazu do souboru, použijte znak závorky > větší než úhel. For example:

    <command1> > <file1.txt>
    
  • Pokud chcete seskupit nebo vnořit více příkazů dohromady, použijte &. For example:

    <command1> & <command2>
    
  • Chcete-li použít více příkazů pro <string>, oddělte je oddělovačem &&příkazů . For example:

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

    Note

    Pokud použijete &&, spustí se následující && příkaz pouze v případě, že předchozí příkaz úspěšně dokončí. Cmd spustí první příkaz a pokračuje k dalšímu pouze v případě, že předchozí příkaz byl úspěšný. Jinak pokud předchozí příkaz selže, následující příkazy se nespustí.

  • Ampersand &, potrubí |a závorky ( ) jsou speciální znaky, které musí předcházet řídicí znak ^ nebo uvozovky, když je předáte jako argumenty.

  • Pokud příkaz úspěšně dokončí operaci, vrátí ukončovací kód nuly (0) nebo žádný ukončovací kód.

  • Pokud cesta k adresáři, soubory nebo jakékoli informace, které zadáte, obsahují mezery, musíte kolem textu použít dvojité uvozovky (" "), například "Computer Name". For example:

    mkdir Test && mkdir "Test 2" && move "Test 2" Test
    
  • Je nutné použít uvozovky kolem následujících speciálních znaků: & <> [ ] | { } ^ = ; ! ' + , ' ~ [prázdné znaky].

  • Pokud zadáte /c nebo /k, cmd procesy, zbývající část <string>a uvozovky se zachovají pouze v případě, že jsou splněny všechny následující podmínky:

    • Nepoužíváte ani /s.
    • Použijete přesně jednu sadu uvozovek.
    • V uvozovkách nepoužívejte žádné speciální znaky, například: & <> ( ) @ ^ |.
    • V uvozovkách použijete jeden nebo více prázdných znaků.
    • V <string> uvozovkách je název spustitelného souboru.

    Pokud předchozí podmínky nejsou splněny, zpracuje se prozkoumáním prvního znaku, abyste ověřili, <string> jestli se jedná o levou uvozovku. Pokud je první znak levou uvozovkou, odstraní se spolu s pravou uvozovkou. Zachovají se všechny texty za uvozovkami.

  • Pokud nezadáte /d, cmd vyhledejte následující podklíče registru:

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

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

    Pokud existuje jeden nebo oba podklíče registru, spustí se před všemi ostatními proměnnými.

  • Rozšíření příkazů pro určitý proces můžete zakázat pomocí ./e:off Rozšíření pro všechny cmd možnosti příkazového řádku v relaci počítače nebo uživatele můžete povolit nebo zakázat nastavením následujících hodnot REG_DWORD :

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

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

    Nastavte hodnotu REG_DWORD v registru na hodnotu 0x1 (povoleno) nebo 0x0 (zakázáno) pomocí Regedit.exe. Uživatelem zadaná nastavení mají přednost před nastavením počítače a možnosti příkazového řádku mají přednost před nastavením registru.

    Caution

    Nesprávná úprava registru může vážně poškodit váš systém. Před provedením změn registru byste měli zálohovat všechna hodnotná data v počítači.

  • Když povolíte rozšíření příkazů, ovlivní to následující příkazy:

    • assoc
    • call
    • chdir (cd)
    • color
    • del (erase)
    • endlocal
    • for
    • ftype
    • goto
    • if
    • mkdir (md)
    • popd
    • prompt
    • pushd
    • set
    • setlocal
    • shift
    • start (zahrnuje také změny externích procesů příkazů)
  • Pokud povolíte opožděné rozšíření proměnné prostředí, můžete použít vykřičník (!) a nahradit hodnotu proměnné prostředí za běhu.

  • Dokončování názvů souborů a adresářů není ve výchozím nastavení povolené. Můžete povolit nebo zakázat dokončení názvu souboru pro určitý proces cmd příkazu pomocí /f:{on | off}příkazu .

  • Dokončování názvů souborů a adresářů můžete povolit nebo zakázat pro všechny procesy cmd příkazu v počítači nebo pro relaci přihlášení uživatele nastavením následujících hodnot REG_DWORD :

    • 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

    Chcete-li nastavit REG_DWORD hodnotu, spusťte Regedit.exe a použijte hexadecimální hodnotu řídicího znaku pro určitou funkci (například 0x9 je TAB a 0x08 je BACKSPACE). Pro prázdné znaky použijte hodnotu [0x20], protože se nejedná o platný řídicí znak. Uživatelem zadaná nastavení mají přednost před nastavením počítače a možnosti příkazového řádku mají přednost před nastavením registru.

    Caution

    Nesprávná úprava registru může vážně poškodit váš systém. Před provedením změn registru byste měli zálohovat všechna hodnotná data v počítači.

  • Pokud povolíte doplňování názvů souborů a adresářů pomocí /f:onprogramu , použijte pro doplňování názvů adresářů kombinaci kláves CTRL+D a pro doplňování názvů souborů kombinaci kláves CTRL+F . Jediný rozdíl mezi kombinacemi kláves CTRL+D a CTRL+F spočívá v tom, že kombinace kláves CTRL+D odpovídá pouze názvům adresářů a klávesám CTRL+F odpovídá názvům souborů i adresářů. Pokud použijete dokončování názvů souborů a adresářů u předdefinovaných příkazů cdadresáře , mdnebo rd, předpokládá se dokončení adresáře.

  • Stisknutím kláves CTRL+D nebo CTRL+F dokončíte název souboru a adresáře. Tyto funkce kombinace kláves připojují zástupný znak, pokud <string> není k dispozici, sestavte seznam cest, které se shodují, a pak zobrazte první odpovídající cestu. Pokud se žádná z cest neshoduje, funkce dokončení názvu souboru a adresáře se změní a zobrazení se nezmění.

    • Chcete-li se pohybovat v seznamu odpovídajících cest, opakovaně stiskněte kombinaci kláves CTRL+D nebo CTRL+F .
    • Chcete-li se v seznamu pohybovat zpět, stiskněte současně klávesu SHIFT a kombinaci kláves CTRL+D nebo CTRL+F .
    • Chcete-li uložený seznam odpovídajících cest zahodit a vygenerovat nový seznam, upravte <string> jej a stiskněte kombinaci kláves CTRL+D nebo CTRL+F.
    • Pokud přepnete mezi klávesami CTRL+D a CTRL+F, uložený seznam odpovídajících cest se zahodí a vygeneruje se nový seznam.
  • Dokončování názvů souborů a adresářů správně zpracovává názvy souborů, které obsahují prázdné znaky nebo speciální znaky, pokud umístíte uvozovky kolem odpovídající cesty.

  • Pokud dokončování názvů souborů a adresářů zpracováváte zevnitř <string>v místě, <string> kde bylo dokončení zpracováno, bude jakákoli část cesty vpravo od kurzoru zahozena.

Použití proměnných prostředí

Prostředí příkazového cmd prostředí je definováno proměnnými, které určují chování příkazového prostředí a operačního systému. Chování prostředí příkazového prostředí nebo celého prostředí operačního systému můžete definovat pomocí dvou typů proměnných prostředí, systému a místního prostředí. Proměnné systémového prostředí definují chování globálního prostředí operačního systému. Místní proměnné prostředí definují chování prostředí aktuální instance cmd.

Systémové proměnné můžou měnit jenom uživatelé s oprávněními správce. Tyto proměnné se nejčastěji používají v přihlašovacích skriptech. Místní proměnné prostředí jsou k dispozici pouze v případě, že je uživatel, pro kterého byly vytvořeny, přihlášen k počítači. Lokální proměnné nastavené v podregistru HKEY_CURRENT_USER jsou platné pouze pro aktuálního uživatele, ale definují chování globálního prostředí operačního systému.

Následující seznam popisuje různé typy proměnných v sestupném pořadí priority:

  1. Integrované systémové proměnné.
  2. Systémové proměnné nalezené v podregistru HKEY_LOCAL_MACHINE .
  3. Místní proměnné nalezené v podregistru HKEY_CURRENT_USER .
  4. Všechny proměnné prostředí a cesty nastavené v souboru Autoexec.bat.
  5. Všechny proměnné prostředí a cesty nastavené v přihlašovacím skriptu (pokud jsou k dispozici).
  6. Proměnné používané interaktivně ve skriptu nebo dávkovém souboru

V příkazovém prostředí každá instance cmd dědí prostředí své nadřazené aplikace. Proto můžete změnit proměnné v novém cmd prostředí, aniž by to mělo vliv na prostředí nadřazené aplikace.

Proměnné prostředí ve vašem prostředí můžete zobrazit spuštěním jednoho z následujících příkazů:

set
Get-ChildItem Env:

Nastavení proměnných prostředí

Pokud chcete zobrazit proměnnou, zadejte:

set <VariableName>

Pokud chcete přidat proměnnou, zadejte:

set <VariableName>=<value>

Pokud chcete odstranit proměnnou, zadejte:

set <VariableName>=

Většinu znaků můžete použít jako hodnoty proměnných, včetně prázdných znaků. Pokud používáte speciální znaky <, >, |, &, nebo ^, musíte před ně vložit řídicí znak ^nebo dvojité uvozovky. Pokud použijete dvojité uvozovky, budou zahrnuté jako součást hodnoty, protože vše, co následuje za znaménkem rovná se, se použije jako hodnota. Zvažte následující příklady:

Pokud chcete vytvořit hodnotu New&Nameproměnné, zadejte:

set <VariableName>=New^&Name

Pokud chcete vytvořit hodnotu "New&Name"proměnné, zadejte:

set <VariableName>="New&Name"

Pokud zadáte set <VariableName>=New&Name (bez karat ^ nebo dvojitých uvozovek) na příkazovém řádku, může se zobrazit následující chybová zpráva:

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

U názvů proměnných se nerozlišuje malá a velká písmena. Zobrazí ale proměnnou přesně tak, set jak jste ji zadali. V názvech proměnných můžete kombinovat velká a malá písmena, aby byl váš kód čitelnější, například UserName.

Note

  • Maximální velikost proměnné prostředí je 8 192 bajtů.
  • Maximální celková velikost všech proměnných prostředí, včetně názvů, hodnot a znaménka rovná se, je pro proces 65 536 znaků.

Nahrazení hodnot proměnných prostředí

Pokud chcete nahradit hodnoty proměnných v příkazovém řádku nebo skriptech, uzavřete název proměnné do znaků procenta (%VariableName%). To umožňuje cmd odkazovat na hodnotu proměnné místo toho, aby se s ní zacházeli jako s textem literálu. Při spuštění cmd skriptu nahradí instance proměnné její hodnotou. Například použití %USERNAME% ve skriptu automaticky nahradí skutečné uživatelské jméno. Nahrazení proměnných není rekurzivní; cmd kontroluje proměnné pouze jednou.