5. říjen 2020 Autor: Tibor
Spustí novou instanci překladače příkazů systému Windows. CMD [/A | /U] [/Q] [/D] [/E:ON | /E:OFF] [/F:ON | /F:OFF] [/V:ON | /V:OFF] [[/S] [/C | /K] řetězec] /C Provede příkaz určený řetězcem a skončí. /K Provede příkaz určený řetězcem, zůstane však zachován. /S Změní způsob zpracování řetězce za přepínači /C nebo /K (viz dále). /Q Vypne zobrazování výsledků. /D Zakáže provádění příkazů AutoRun z registru (viz dále). /A Způsobí, že výstup vnitřních příkazů do kanálu nebo do souboru bude v kódu ANSI. /U Způsobí, že výstup vnitřních příkazů do kanálu nebo do souboru bude v kódu Unicode. /T:fg Nastaví barvy popředí a pozadí (další informace získáte příkazem COLOR /?). /E:ON Povolí rozšíření příkazů (viz dále). /E:OFF Zakáže rozšíření příkazů (viz dále). /F:ON Povolí ukončovací znaky názvů souborů a adresářů (viz dále). /F:OFF Zakáže ukončovací znaky názvů souborů a adresářů (viz dále). /V:ON Povolí zpožděné rozvinutí proměnné prostředí s využitím znaku ! jako oddělovače. Například přepínač /V:ON umožní, aby zápis !prom! rozvinul proměnnou prom během provádění. Syntaxe prom rozvine proměnnou během zadání, což je něco zcela jiného, dojde-li k tomu uvnitř smyčky FOR. /V:OFF Zakáže zpožděné rozvinutí proměnných prostředí. Řetězec může obsahovat více příkazů uzavřených v uvozovkách a oddělených oddělovačem příkazů '&&'. Dále platí, že z důvodů kompatibility je /X totéž jako /E:ON, /Y je totéž jako /E:OFF a /R je totéž jako /C. Všechny ostatní přepínače jsou ignorovány. Je-li uveden přepínač /C nebo /K, bude zbytek příkazového řádku za tímto přepínačem zpracován jako příkazový řádek, přičemž při zpracování znaků uvozovka (") bude použita tato logika: 1. Budou-li splněny všechny následující podmínky, budou znaky uvozovek v příkazovém řádku zachovány: - žádný přepínač /S; - právě dva znaky uvozovek; - žádné speciální znaky mezi dvěma znaky uvozovek, kde speciálními znaky rozumíme některé ze znaků: &<>()@^|; - mezi dvěma znaky uvozovek se vyskytuje jeden nebo více prázdných znaků; - řetězec mezi dvěma znaky uvozovek je názvem spustitelného souboru. 2. V ostatních případech budou uvozovky interpretovány postaru: Je-li prvním znakem znak uvozovky, odstranit z příkazového řádku počáteční znak a poslední znak uvozovky a zachovat veškerý text za posledním znakem uvozovky. Pokud nebyl na příkazovém řádku zadán parametr /D, příkaz CMD.EXE prohledá po spuštění následující proměnné typu REG_SZ nebo REG_EXPAND_SZ registru a jestliže jsou obě proměnné k dispozici, spustí nejdříve dané programy. HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun nebo HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun Rozšíření příkazů jsou ve výchozím nastavení povolena. Pro jednotlivá volání můžete rozšíření zakázat pomocí přepínače /E:OFF. Rozšíření můžete povolit nebo zakázat pro všechna volání programu CMD.EXE v daném počítači nebo pro přihlašovací relaci určitého uživatele nastavením některé z následujících hodnot REG_DWORD (nebo obou) v registru pomocí programu REGEDIT.EXE: HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\EnableExtensions nebo HKEY_CURRENT_USER\Software\Microsoft\Command Processor\EnableExtensions na hodnotu 0x1 nebo 0x0. Nastavení pro určitého uživatele má přednost před nastavením pro počítač. Přepínače příkazového řádku mají přednost před nastaveními v registru. V dávkovém souboru mají argumenty SETLOCAL ENABLEEXTENSIONS a DISABLEEXTENSIONS přednost před přepínačem /E:ON nebo /E:OFF. Podrobnosti zobrazíte zadáním příkazu SETLOCAL /?. Rozšíření příkazů zahrnují změny a doplňky těchto příkazů: DEL či ERASE COLOR CD či CHDIR MD či MKDIR PROMPT PUSHD POPD SET SETLOCAL ENDLOCAL IF FOR CALL SHIFT GOTO START (také zahrnuje změny vyvolání externích příkazů) ASSOC FTYPE Podrobnější informace získáte zadáním příkazu ve tvaru název_příkazu /? . Opožděné rozbalování proměnných prostředí není ve výchozím nastavení povoleno. Opožděné rozbalování můžete povolit nebo zakázat pro dané spuštění příkazu CMD.EXE pomocí parametru /V:ON nebo /V:OFF. Dále můžete povolit nebo zakázat opožděné rozbalování všech spuštění příkazu CMD.EXE pro počítač nebo relaci přihlášení uživatele tak, že nastavíte jednu nebo obě následující proměnné typu REG_DWORD registru pomocí programu REGEDIT.EXE: HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\ DelayedExpansion nebo HKEY_CURRENT_USER\Software\Microsoft\Command Processor\ DelayedExpansion na hodnotu 0x1 nebo 0x0. Nastavení uživatele má vyšší prioritu než nastavení počítače. Parametry příkazového řádku mají vyšší prioritu než nastavení v registru. V dávkovém souboru mají argumenty SETLOCAL ENABLEDELAYEDEXPANSION a DISABLEDELAYEDEXPANSION přednost před přepínačem /V:ON nebo /V:OFF. Podrobnosti zobrazíte zadáním příkazu SETLOCAL /?. Jestliže je opožděné rozbalování proměnných prostředí povoleno, znak vykřičník lze použít k nahrazení hodnoty proměnné prostředí při vykonávání příkazu. Pro jednotlivá vyvolání programu CMD.EXE můžete ukončování názvů souborů povolit nebo zakázat přepínačem /F:ON nebo /F:OFF. Ukončování můžete povolit nebo zakázat pro všechna vyvolání programu CMD.EXE v daném počítači nebo pro přihlašovací relaci určitého uživatele nastavením některé z následujících hodnot REG_DWORD (nebo obou hodnot) v registru pomocí programu REGEDIT.EXE: HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\ CompletionChar HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\ PathCompletionChar nebo HKEY_CURRENT_USER\Software\Microsoft\Command Processor\ CompletionChar HKEY_CURRENT_USER\Software\Microsoft\Command Processor\ PathCompletionChar na šestnáctkovou hodnotu řídicího znaku, který chcete použít pro příslušnou funkci (např. 0x4 je Ctrl-D a 0x6 je Ctrl-F). Nastavení pro určitého uživatele má přednost před nastavením pro daný počítač. Přepínače příkazového řádku mají přednost před nastavením v registru. Bude-li ukončování povoleno přepínačem /F:ON, bude pro ukončování názvů adresářů použit řídicí znak Ctrl-D a pro ukončování názvů souborů řídicí znak Ctrl-F. Chcete-li určitý ukončovací znak zakázat v registru, použijte hodnotu pro mezeru (0x20), protože to není platný řídicí znak. Dokončení je vyvoláno zadáním jednoho ze dvou řídicích znaků. Dokončovací funkce použije řetězec cesty vlevo od kurzoru, připojí k němu zástupný znak (pokud jej cesta již neobsahuje) a vytvoří seznam odpovídajících cest. Poté zobrazí první odpovídající cestu. Pokud neodpovídá žádná cesta, funkce vydá zvukové znamení a nezobrazí nic. Následná opakovaná zadání řídicího znaku vyvolají postupné zobrazování odpovídajících cest. Při současném stisknutí klávesy Shift a řídicího znaku bude seznam procházen pozpátku. Jestliže řádek upravíte a stisknete řídicí znak znovu, uložený seznam odpovídajících cest je nahrazen nově vygenerovaným seznamem. Stejně tak je vygenerován nový seznam, jestliže přepnete mezi dokončováním názvů adresářů a souborů. Jediný rozdíl mezi oběma řídicími znaky je ten, že při dokončování názvů souborů jsou generovány názvy souborů i adresářů, zatímco při dokončování názvů adresářů jsou generovány pouze adresáře. Pokud je pro libovolný integrovaný příkaz pro práci s adresáři (CD, MD nebo RD) použito dokončování souborů, automaticky se předpokládá dokončování adresářů. Kód dokončovací funkce pracuje správně i pro názvy obsahující mezery nebo jiné speciální znaky tak, že cestu umístí do uvozovek. Jestliže kurzor přesunete zpět a vyvoláte dokončení, text napravo od kurzoru je pro dokončení ignorován. Speciální znaky vyžadující uvozovky jsou:&()[]{}^=;!'+,`~