CMD — запуск и настройка интерпретатора командной строки Windows

CMD запускает новую копию командного интерпретатора Windows. Поддерживает ключи для выполнения команд, настройки среды, работы с кодировками и скриптами.

CMD — запуск и настройка интерпретатора командной строки Windows

CMD (cmd.exe) — интерпретатор командной строки Windows, запускающий новую консольную сессию или выполняющий одну команду с немедленным завершением. Зная ключи CMD, можно управлять кодировкой вывода, отключать расширения, запускать скрипты от имени другого пользователя и встраивать CMD в цепочки автоматизации.

Синтаксис команды CMD

CMD [/A | /U] [/Q] [/D] [/E:ON | /E:OFF] [/F:ON | /F:OFF] [/V:ON | /V:OFF]
    [{/S}] [/C строка | /K строка]
  • строка — команда или последовательность команд для выполнения.
  • /C — выполнить строка и завершить работу CMD.
  • /K — выполнить строка и оставить CMD открытым.
  • /S — изменить обработку кавычек в строке после /C или /K.

Ключи и параметры

Ключ Описание Пример
/C Выполнить указанную команду и закрыть окно CMD CMD /C ipconfig
/K Выполнить команду и оставить CMD открытым (полезно для отладки) CMD /K dir C:\
/D Отключить выполнение команд из AutoRun в реестре при запуске CMD CMD /D
/A Задать кодировку ANSI для вывода команд в файл или канал (pipe) CMD /A /C dir > list.txt
/U Задать кодировку Unicode (UTF-16 LE) для вывода в файл или канал CMD /U /C dir > list.txt
/Q Включить режим тихого выполнения (отключить эхо команд, как @echo off) CMD /Q /C backup.bat
/E:ON Включить расширения команд (по умолчанию включены) CMD /E:ON
/E:OFF Отключить расширения команд (DOS-совместимый режим) CMD /E:OFF
/V:ON Включить отложенное раскрытие переменных через !var! CMD /V:ON /C script.bat
/V:OFF Отключить отложенное раскрытие переменных CMD /V:OFF
/F:ON Включить автодополнение имён файлов и каталогов клавишей Tab CMD /F:ON
/S Изменить поведение кавычек при обработке строки после /C или /K CMD /S /C "echo hello"

Примеры использования

Выполнить команду и закрыть CMD

Ключ /C запускает команду, возвращает результат и немедленно закрывает сессию CMD. Удобно для вызова из скриптов PowerShell или планировщика задач.

CMD /C ipconfig /all

Информация об IP-адресах будет выведена, затем CMD завершится.

Запустить скрипт и оставить окно открытым

При отладке bat-файлов используйте /K, чтобы увидеть вывод и сообщения об ошибках до закрытия окна.

CMD /K C:\Scripts\deploy.bat

Скрипт выполнится, но окно CMD останется открытым — можно прочитать вывод и ввести дополнительные команды.

Запустить CMD с отложенным раскрытием переменных

В циклах FOR переменные вычисляются в момент разбора строки, а не исполнения. Ключ /V:ON и синтаксис !VAR! решают эту проблему.

CMD /V:ON /C "SET COUNT=0 & FOR %%i IN (a b c) DO (SET /A COUNT+=1 & echo !COUNT!: %%i)"

Счётчик будет корректно увеличиваться внутри цикла благодаря отложенному раскрытию.

Записать вывод команды в файл в ANSI

По умолчанию кодировка вывода зависит от системной кодовой страницы. Ключ /A явно задаёт ANSI, что важно при передаче вывода в старые системы.

CMD /A /C dir C:\ > C:\Logs\filelist.txt

Запустить CMD без AutoRun-команд из реестра

Некоторые программы прописывают команды в ключ реестра AutoRun, которые выполняются при каждом запуске CMD. Ключ /D игнорирует их.

CMD /D

Новая сессия CMD запустится без автоматически выполняемых команд из реестра.

Запустить несколько команд в одной строке через CMD /C

Передайте несколько команд, объединив их через && (выполнить следующую, если предыдущая успешна) или & (выполнить всегда).

CMD /C "cd C:\Backup && xcopy D:\Data . /E /Y && echo Готово"

Открыть CMD от имени администратора через PowerShell

Из PowerShell можно запустить CMD с повышенными привилегиями, не покидая текущую сессию.

Start-Process cmd.exe -Verb RunAs

Частые ошибки и решения

Ошибка / ситуация Причина Решение
CMD /C закрывается мгновенно, не успеваю прочитать вывод /C закрывает окно сразу после выполнения команды Замените /C на /K для отладки; в продакшне перенаправьте вывод в файл
Кириллица в выводе отображается как «кракозябры» Несоответствие кодовых страниц CMD и консольного шрифта Выполните CHCP 65001 в начале сессии для UTF-8, либо используйте ключ /U при записи в файл
Кавычки в строке после /C обрабатываются неправильно CMD по-разному обрабатывает внешние кавычки в зависимости от ключа /S Добавьте /S: CMD /S /C "команда"; при необходимости экранируйте внутренние кавычки через \"
Переменные внутри цикла FOR не обновляются Значения переменных раскрываются при разборе блока, а не при выполнении каждой итерации Запустите CMD с ключом /V:ON и используйте синтаксис !VAR! вместо %VAR%
AutoRun-команды из реестра нарушают работу скрипта Сторонние программы могут прописывать команды в HKCU\Software\Microsoft\Command Processor\AutoRun Запускайте CMD с ключом /D в автоматизированных скриптах
CMD /C возвращает неверный код ошибки (ERRORLEVEL) Если строка содержит несколько команд через &&, ERRORLEVEL отражает код последней команды Проверяйте ERRORLEVEL после каждой критической команды внутри скрипта

Когда применять, а когда нет

CMD с ключами оптимален для запуска bat-скриптов, встраивания консольных команд в автоматизацию (планировщик задач, вызов из других процессов) и работы с Legacy-приложениями, которые не понимают PowerShell. Для сложных задач автоматизации — обработки данных, работы с API, управления конфигурацией — предпочтительнее PowerShell или Python. Начиная с Windows 10 версии 1607 Microsoft рекомендует PowerShell как основную оболочку автоматизации. Аналог в PowerShell: сам PowerShell запускается аналогично — powershell.exe -Command "..." или powershell.exe -File script.ps1.

FAQ

В чём разница между CMD /C и CMD /K?

/C выполняет команду и закрывает окно CMD — подходит для скриптов и автоматизации. /K выполняет команду, но оставляет окно открытым — удобно для отладки и интерактивной работы.

Как запустить CMD от имени администратора из командной строки?

В PowerShell: Start-Process cmd.exe -Verb RunAs. В самом CMD — через runas /user:Администратор cmd.exe (потребует ввода пароля). Самый быстрый способ — зажать Ctrl+Shift при запуске CMD из меню Пуск.

Как передать в CMD команду с кавычками внутри?

Оберните всю строку во внешние кавычки и добавьте ключ /S: CMD /S /C "echo "текст в кавычках"". Если кавычки конфликтуют, используйте переменную среды или временный bat-файл.

Как отключить кириллицу в виде «?» в выводе CMD?

Выполните CHCP 65001 для переключения на UTF-8 и смените шрифт консоли на «Lucida Console» или «Consolas» — они поддерживают кириллицу в Unicode-режиме.

Что такое AutoRun в контексте CMD?

AutoRun — значение в реестре (HKCU\Software\Microsoft\Command Processor\AutoRun и аналогичный ключ в HKLM), содержащее команды, которые автоматически выполняются при каждом запуске CMD. Ключ /D игнорирует AutoRun.

Чем CMD отличается от PowerShell?

CMD — классический интерпретатор, работающий с текстовыми потоками и унаследованный из MS-DOS. PowerShell — современная объектно-ориентированная оболочка, работающая с объектами .NET, поддерживающая модули, удалённое управление и полноценное программирование. Для простых задач и совместимости со старыми скриптами используйте CMD; для автоматизации и администрирования Windows — PowerShell.

Оцените статью
( Пока оценок нет )
MW10
Добавить комментарий

Нажимая на кнопку "Отправить комментарий", я даю согласие на обработку персональных данных и принимаю политику конфиденциальности.