Перейти к основному содержимому

Примеры команд в cmd

(CMD — Command Prompt, интерпретатор команд Windows)

Примечание.
Команды выполняются в контексте текущей рабочей директории (%CD%).
Параметры, начинающиеся с /, — стандарт для большинства встроенных команд Windows (в отличие от Unix‑стиля -).
Некоторые команды имеют псевдонимы (например, dirDIR), регистр не важен.
При работе с путями, содержащими пробелы, используйте кавычки: "C:\Program Files".


1. Навигация по файловой системе

КомандаПримерОписание
cd (или chdir)cd \ cd .. cd "My Documents" cd /d D:\ProjectsСменить текущую директорию. .. — в родительскую. /d — сменить и диск (иначе смена диска требует отдельной команды D:).
dirdir dir /s dir *.txt /b /s dir /a:-dВывод содержимого каталога. /s — рекурсивно (включая подкаталоги). /b — bare-формат (только имена, без заголовков). /a:-d — только файлы (исключить каталоги); /a:d — только каталоги.
pushd / popdpushd C:\Temp cd \ popdСохранить текущую директорию в стеке (pushd), затем восстановить (popd). Полезно при временных переходах. Поддерживает сетевые пути (\\server\share).

2. Работа с файлами и каталогами

КомандаПримерОписание
mkdir (или md)mkdir NewFolder mkdir a\b\cСоздать каталог(и). Создаёт цепочку вложенных каталогов при необходимости.
rmdir (или rd)rmdir EmptyDir rmdir /s /q OldProjectУдалить каталог. /s — рекурсивно (включая содержимое). /q — тихий режим (без подтверждения).
copycopy file.txt backup.txt copy *.log logs\ copy a.txt + b.txt c.txtКопирование файлов. При копировании в каталог назначения должен существовать. + — конкатенация файлов (бинарное объединение).
xcopyxcopy src\* dest\ /e /i /yРасширенное копирование (устаревшее, но широко используемое). /e — включая подкаталоги, даже пустые. /i — создать целевой каталог, если он отсутствует и копируется более одного файла. /y — не запрашивать подтверждение перезаписи.
robocopyrobocopy src dest /mir /r:1 /w:1Рекомендовано Microsoft вместо xcopy. /mir — зеркалирование (удаляет файлы в dest, отсутствующие в src). /r:1 /w:1 — 1 попытка повтора с задержкой 1 сек (умолч. — 1 млн попыток с 30‑сек паузой!). Поддерживает журналирование (/log:file.log), исключения (/xf *.tmp).
del (или erase)del temp.log del *.tmp /q del /s /q *.logУдаление файлов. /q — без подтверждения. /s — рекурсивно по подкаталогам.
movemove old.txt new\folder\ move report.doc archive\report_2024.docПеремещение/переименование файлов и каталогов.
typetype config.ini type file1.txt file2.txt > combined.txtВывод содержимого текстового файла в консоль (аналог cat). Может объединять несколько файлов.
more`type large.logmore dir /s

3. Переменные среды и управление сессией

КомандаПримерОписание
setset set PATH set MY_VAR=123 set MY_VAR=Без аргументов — вывод всех переменных. set NAME — значение переменной NAME. set NAME=value — установка. set NAME= — удаление переменной.
set /pset /p USER_INPUT="Enter your name: "Интерактивный ввод от пользователя в переменную.
set /aset /a X=5+3*2 set /a Y=%X%+10Арифметические вычисления (целочисленные, 32‑битные). Поддерживает + - * / % ( ) << >> &
echoecho Hello echo %USERNAME% echo.Вывод строки. echo. — пустая строка (альтернатива echo( в современных версиях).
pausepause pause >nulОжидание нажатия клавиши. >nul — подавить вывод сообщения.
clsclsОчистка экрана (не очищает буфер истории).

4. Управление процессами и службами

КомандаПримерОписание
tasklisttasklist tasklist /fi "imagename eq chrome.exe" tasklist /vСписок запущенных процессов. /fi — фильтр (например, по имени образа). /v — подробный вывод (пользователь, сессия, окно и т.д.).
taskkilltaskkill /pid 1234 taskkill /im notepad.exe /fЗавершение процесса. /f — принудительно. /im — по имени образа (image name).
startstart notepad.exe start "" "C:\path\to\file.xlsx" start /min cmd.exeЗапуск программы или документа в новом окне. Первый аргумент — заголовок окна (часто ""). /min — свёрнутое окно.
shutdownshutdown /s /t 60 shutdown /r /f /t 0 shutdown /lУправление выключением/перезагрузкой/выходом. /s — выключение. /r — перезагрузка. /f — принудительное завершение приложений. /t N — задержка N секунд. /l — выход из системы (logoff).

5. Сетевые команды

КомандаПримерОписание
ipconfigipconfig ipconfig /all ipconfig /release ipconfig /renewИнформация о сетевых интерфейсах. /all — подробно (MAC, DHCP, DNS). /release / /renew — для DHCP.
pingping ya.ru ping 8.8.8.8 -n 4 -l 1000Проверка доступности хоста. -n — число пакетов (умолч. 4). -l — размер payload в байтах.
tracerttracert google.comТрассировка маршрута (аналог traceroute).
netstatnetstat -ano `netstat -anfindstr :80`
nslookupnslookup ya.ru nslookup -type=mx ya.ruЗапрос DNS. Режим интерактивный при запуске без аргументов.

6. Архивация и работа с текстом (встроенные возможности)

КомандаПримерОписание
find`dir /s /bfind ".log" type config.txt
findstrfindstr /s /m /i "error" *.log findstr /r /c:"[0-9]\{3\}" data.txtРасширенный поиск (поддерживает регулярные выражения). /s — рекурсивно. /m — только имена файлов. /r — режим регулярных выражений (ограниченный, не PCRE). /c:"..." — точная строка (важно при пробелах).
sort`type list.txtsort dir /b
fcfc file1.txt file2.txt fc /b bin1.exe bin2.exeСравнение файлов. Без /b — текстовое сравнение. /b — побайтовое (для бинарников).

7. Работа с реестром Windows

Важно. Изменения в реестре могут повлиять на стабильность системы. Резервное копирование (reg export) — обязательная практика перед модификацией.

КомандаПримерОписание
reg queryreg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion reg query HKCU\Environment /v PATH reg query HKLM /f "chrome" /t REG_SZ /sЧтение значений/ключей. /v имя — конкретное значение. /f — поиск по значению, /t — тип (REG_SZ, REG_DWORD и др.), /s — рекурсивно.
reg addreg add HKCU\Environment /v MY_VAR /t REG_SZ /d "test" /fДобавление или изменение значения. /t — тип (REG_SZ, REG_DWORD, REG_EXPAND_SZ, REG_MULTI_SZ). /d — данные. /f — без подтверждения.
reg deletereg delete HKCU\Environment /v MY_VAR /f reg delete HKLM\SOFTWARE\MyApp /fУдаление значения или всего ключа (/va — удалить все значения ключа, оставив ключ).
reg export / reg importreg export HKCU\Software\MyApp backup.reg reg import backup.regРезервное копирование и восстановление ветки реестра в файл .reg. Формат совместим с редактором regedit.

8. Управление службами и сетевыми ресурсами (net, sc)

КомандаПримерОписание
net start / net stopnet start Spooler net stop "Windows Update"Запуск/остановка службы по её отображаемому имени (не по имени службы в SCM!). Обёртка над sc. Требует прав администратора для системных служб.
net usenet use Z: \\server\share /user:domain\user * net use * /delete /yПодключение/отключение сетевых дисков. * — автоматический выбор буквы. * в пароле — запрос ввода. /y — без подтверждения.
net sharenet share net share Data=C:\Data /grant:Everyone,READПросмотр и создание общих ресурсов на локальной машине. Только для запущенных серверных ОС или при включённой «Общей папке» в клиентских.
sc query / sc start / sc stopsc query wuauserv sc start wuauserv sc config wuauserv start= delayed-autoНизкоуровневое управление службами через Service Control Manager. sc config … start= … — установка типа запуска (boot, system, auto, demand, disabled, delayed-auto). Пробел после = обязателен.

9. Диагностика дисков и файловой системы

КомандаПримерОписание
chkdskchkdsk C: /f chkdsk C: /rПроверка и восстановление файловой системы. /f — исправлять ошибки (требует перезагрузки, если диск смонтирован). /r — искать повреждённые сектора + /f. Выполняется очень долго на больших дисках.
diskpart (интерактивный)diskpart list disk select disk 1 list partition select partition 2 assign letter=XРазметка дисков, назначение букв, очистка (clean), создание разделов. Требует запуска от имени администратора. Для автоматизации используйте скрипты: diskpart /s script.txt.
formatformat X: /fs:ntfs /q /v:DATAФорматирование диска. /fs: — файловая система (ntfs, fat32, exfat). /q — быстрое форматирование. /v: — метка тома.
fsutilfsutil fsinfo drives fsutil file queryextents C:\file.txt fsutil behavior query DisableDeleteNotifyНизкоуровневая работа с файловой системой NTFS. fsinfo — информация о дисках. behavior query — параметры NTFS (например, отключение TRIM для SSD).

10. Административные и диагностические утилиты

КомандаПримерОписание
whoamiwhoami whoami /groups /fo list whoami /privИнформация о текущем пользователе и его привилегиях. Полезно в скриптах для проверки прав.
systeminfosysteminfo systeminfo /fo csvСводка по ОС, железу, обновлениям, сетевым интерфейсам. Может работать долго (>10 сек). Вывод в CSV удобен для анализа.
driverquerydriverquery /v /fo csvСписок драйверов, их состояние, подписи.
timeouttimeout /t 5 timeout /t -1Ожидание N секунд (с возможностью прервать по клавише). /t -1 — бесконечное ожидание (до нажатия). Альтернатива устаревшему ping 127.0.0.1 -n N >nul.
choicechoice /c YNA /m "Continue? (Y/N/Abort)" if errorlevel 3 echo AbortedИнтерактивный выбор из вариантов. Код возврата = порядковый номер опции (1‑based).

11. Интеграция с PowerShell и внешними инструментами

Хотя cmd остаётся актуальным, современные задачи часто требуют вызова более мощных утилит:

СценарийПримерКомментарий
Вызов PowerShell из cmd`powershell -Command "Get-ProcessWhere CPU -gt 100" powershell -File script.ps1 -Param1 value`
Запуск Python/Node/Javapython -c "print('Hello from Python')" node -e "console.log('Hello from Node')"Убедитесь, что соответствующий интерпретатор в %PATH%. Полезно для встраивания логики в .bat.
Использование curl / wget (в Windows 10 17063+)curl -o file.zip https://example.com/file.zip curl -I https://api.example.com/healthВстроенный curl.exe (на базе libcurl) поддерживает HTTPS, заголовки, -L, --fail. Аналог wget — не встроен, но доступен отдельно.
Прямой вызов .NET через dotnet CLIdotnet --list-sdks dotnet run --project MyProj.csprojТребует установленного .NET SDK.

12. Основы написания .bat‑файлов (пакетных скриптов)

Ниже — шаблоны и идиомы, полезные при автоматизации.

12.1. Структура и базовые конструкции

@echo off
rem — Отключает вывод каждой команды (как set -x в bash)
rem — @ в начале первой строки подавляет вывод её самой

setlocal
rem — Локализует изменения переменных среды (отменяются при выходе)

title My Deployment Script
rem — Меняет заголовок окна консоли

echo [%DATE% %TIME%] Starting deployment...

12.2. Переменные и аргументы

echo Script name: %~nx0
echo First arg: %1
echo All args: %*
echo Number of args: %#

rem Извлечение пути/имени из аргумента:
set FILE=%1
echo Drive: %~d1
echo Path: %~p1
echo Name.Ext: %~nx1
echo Full path (resolved): %~f1

12.3. Условия и циклы

if exist "config.ini" (
echo Config found.
) else (
echo Missing config.ini. Exiting.
exit /b 1
)

rem Сравнение строк (регистрозависимо по умолчанию)
if /i "%USERNAME%"=="Admin" echo Welcome, Admin.

rem Цикл по файлам
for %%f in (*.log) do (
echo Processing %%f
type "%%f" | findstr /i "error" && echo --- %%f contains errors
)

rem Цикл по строкам в файле
for /f "usebackq tokens=*" %%l in ("list.txt") do (
echo Line: %%l
)

12.4. Обработка кодов возврата

robocopy src dst /mir
if errorlevel 8 (
echo Critical failure in robocopy.
exit /b 1
) else if errorlevel 1 (
echo Some files skipped/copied, but no error.
)
rem Примечание: robocopy использует битовую маску в ERRORLEVEL:
rem 0 = успех, 1 = копирование выполнено, 2 = extra files, 4 = mismatch,
rem 8 = ошибка, 16 = фатальная ошибка.

12.5. Логирование

set LOGFILE=%~dp0deploy_%DATE:~-4,4%%DATE:~-10,2%%DATE:~-7,2%.log
echo [%TIME%] Begin > "%LOGFILE%"
mytool.exe >> "%LOGFILE%" 2>&1
if %errorlevel% neq 0 (
echo [%TIME%] FAILED >> "%LOGFILE%"
exit /b %errorlevel%
)
echo [%TIME%] OK >> "%LOGFILE%"

Совет. Используйте >> для дописывания, 2>&1 — перенаправление stderr в stdout.


13. Частые «ловушки» и рекомендации

ПроблемаРешение / Пояснение
Длинные пути (>260 символов)Включите поддержку длинных путей в групповой политике (Computer Configuration → Administrative Templates → System → Filesystem → Enable Win32 long paths) или используйте префикс \\?\ (только с абсолютными путями, без ./..).
Кодировка вывода (OEM vs ANSI)cmd по умолчанию использует OEM-кодовую страницу (866 для русского). Для совместимости с UTF-8: chcp 65001 — переключиться на UTF-8 (но шрифты консоли должны поддерживать). Вывод в файл (> file.txt) сохраняется в текущей кодовой странице.
Проблемы с пробелами в путяхВсегда заключайте пути в кавычки: "C:\Program Files\App\app.exe". При передаче в for — используйте usebackq и %%~f для нормализации.
Непредсказуемое поведение %VAR% внутри блоков if/forВключите отложенное расширение: setlocal enabledelayedexpansion, затем используйте !VAR! вместо %VAR%.
Отсутствие grep, sed, awkРассмотрите установку: - Windows Subsystem for Linux (WSL) — полный набор Unix‑утилит; - GnuWin32 или Chocolatey (choco install grep sed awk) — порты под Windows; - Встроенные findstr, for /f, powershell -c … — часто достаточны.