Примеры команд в cmd
(CMD — Command Prompt, интерпретатор команд Windows)
Примечание.
Команды выполняются в контексте текущей рабочей директории (%CD%).
Параметры, начинающиеся с/, — стандарт для большинства встроенных команд Windows (в отличие от Unix‑стиля-).
Некоторые команды имеют псевдонимы (например,dir≡DIR), регистр не важен.
При работе с путями, содержащими пробелы, используйте кавычки:"C:\Program Files".
1. Навигация по файловой системе
| Команда | Пример | Описание |
|---|---|---|
cd (или chdir) | cd \ cd .. cd "My Documents" cd /d D:\Projects | Сменить текущую директорию. .. — в родительскую. /d — сменить и диск (иначе смена диска требует отдельной команды D:). |
dir | dir dir /s dir *.txt /b /s dir /a:-d | Вывод содержимого каталога. /s — рекурсивно (включая подкаталоги). /b — bare-формат (только имена, без заголовков). /a:-d — только файлы (исключить каталоги); /a:d — только каталоги. |
pushd / popd | pushd 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 — тихий режим (без подтверждения). |
copy | copy file.txt backup.txt copy *.log logs\ copy a.txt + b.txt c.txt | Копирование файлов. При копировании в каталог назначения должен существовать. + — конкатенация файлов (бинарное объединение). |
xcopy | xcopy src\* dest\ /e /i /y | Расширенное копирование (устаревшее, но широко используемое). /e — включая подкаталоги, даже пустые. /i — создать целевой каталог, если он отсутствует и копируется более одного файла. /y — не запрашивать подтверждение перезаписи. |
robocopy | robocopy 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 — рекурсивно по подкаталогам. |
move | move old.txt new\folder\ move report.doc archive\report_2024.doc | Перемещение/переименование файлов и каталогов. |
type | type config.ini type file1.txt file2.txt > combined.txt | Вывод содержимого текстового файла в консоль (аналог cat). Может объединять несколько файлов. |
more | `type large.log | more dir /s |
3. Переменные среды и управление сессией
| Команда | Пример | Описание |
|---|---|---|
set | set set PATH set MY_VAR=123 set MY_VAR= | Без аргументов — вывод всех переменных. set NAME — значение переменной NAME. set NAME=value — установка. set NAME= — удаление переменной. |
set /p | set /p USER_INPUT="Enter your name: " | Интерактивный ввод от пользователя в переменную. |
set /a | set /a X=5+3*2 set /a Y=%X%+10 | Арифметические вычисления (целочисленные, 32‑битные). Поддерживает + - * / % ( ) << >> & |
echo | echo Hello echo %USERNAME% echo. | Вывод строки. echo. — пустая строка (альтернатива echo( в современных версиях). |
pause | pause pause >nul | Ожидание нажатия клавиши. >nul — подавить вывод сообщения. |
cls | cls | Очистка экрана (не очищает буфер истории). |
4. Управление процессами и службами
| Команда | Пример | Описание |
|---|---|---|
tasklist | tasklist tasklist /fi "imagename eq chrome.exe" tasklist /v | Список запущенных процессов. /fi — фильтр (например, по имени образа). /v — подробный вывод (пользователь, сессия, окно и т.д.). |
taskkill | taskkill /pid 1234 taskkill /im notepad.exe /f | Завершение процесса. /f — принудительно. /im — по имени образа (image name). |
start | start notepad.exe start "" "C:\path\to\file.xlsx" start /min cmd.exe | Запуск программы или документа в новом окне. Первый аргумент — заголовок окна (часто ""). /min — свёрнутое окно. |
shutdown | shutdown /s /t 60 shutdown /r /f /t 0 shutdown /l | Управление выключением/перезагрузкой/выходом. /s — выключение. /r — перезагрузка. /f — принудительное завершение приложений. /t N — задержка N секунд. /l — выход из системы (logoff). |
5. Сетевые команды
| Команда | Пример | Описание |
|---|---|---|
ipconfig | ipconfig ipconfig /all ipconfig /release ipconfig /renew | Информация о сетевых интерфейсах. /all — подробно (MAC, DHCP, DNS). /release / /renew — для DHCP. |
ping | ping ya.ru ping 8.8.8.8 -n 4 -l 1000 | Проверка доступности хоста. -n — число пакетов (умолч. 4). -l — размер payload в байтах. |
tracert | tracert google.com | Трассировка маршрута (аналог traceroute). |
netstat | netstat -ano `netstat -an | findstr :80` |
nslookup | nslookup ya.ru nslookup -type=mx ya.ru | Запрос DNS. Режим интерактивный при запуске без аргументов. |
6. Архивация и работа с текстом (встроенные возможности)
| Команда | Пример | Описание |
|---|---|---|
find | `dir /s /b | find ".log" type config.txt |
findstr | findstr /s /m /i "error" *.log findstr /r /c:"[0-9]\{3\}" data.txt | Расширенный поиск (поддерживает регулярные выражения). /s — рекурсивно. /m — только имена файлов. /r — режим регулярных выражений (ограниченный, не PCRE). /c:"..." — точная строка (важно при пробелах). |
sort | `type list.txt | sort dir /b |
fc | fc file1.txt file2.txt fc /b bin1.exe bin2.exe | Сравнение файлов. Без /b — текстовое сравнение. /b — побайтовое (для бинарников). |
7. Работа с реестром Windows
Важно. Изменения в реестре могут повлиять на стабильность системы. Резервное копирование (
reg export) — обязательная практика перед модификацией.
| Команда | Пример | Описание |
|---|---|---|
reg query | reg 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 add | reg 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 delete | reg delete HKCU\Environment /v MY_VAR /f reg delete HKLM\SOFTWARE\MyApp /f | Удаление значения или всего ключа (/va — удалить все значения ключа, оставив ключ). |
reg export / reg import | reg export HKCU\Software\MyApp backup.reg reg import backup.reg | Резервное копирование и восстановление ветки реестра в файл .reg. Формат совместим с редактором regedit. |
8. Управление службами и сетевыми ресурсами (net, sc)
| Команда | Пример | Описание |
|---|---|---|
net start / net stop | net start Spooler net stop "Windows Update" | Запуск/остановка службы по её отображаемому имени (не по имени службы в SCM!). Обёртка над sc. Требует прав администратора для системных служб. |
net use | net use Z: \\server\share /user:domain\user * net use * /delete /y | Подключение/отключение сетевых дисков. * — автоматический выбор буквы. * в пароле — запрос ввода. /y — без подтверждения. |
net share | net share net share Data=C:\Data /grant:Everyone,READ | Просмотр и создание общих ресурсов на локальной машине. Только для запущенных серверных ОС или при включённой «Общей папке» в клиентских. |
sc query / sc start / sc stop | sc 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. Диагностика дисков и файловой системы
| Команда | Пример | Описание |
|---|---|---|
chkdsk | chkdsk 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. |
format | format X: /fs:ntfs /q /v:DATA | Форматирование диска. /fs: — файловая система (ntfs, fat32, exfat). /q — быстрое форматирование. /v: — метка тома. |
fsutil | fsutil fsinfo drives fsutil file queryextents C:\file.txt fsutil behavior query DisableDeleteNotify | Низкоуровневая работа с файловой системой NTFS. fsinfo — информация о дисках. behavior query — параметры NTFS (например, отключение TRIM для SSD). |
10. Административные и диагностические утилиты
| Команда | Пример | Описание |
|---|---|---|
whoami | whoami whoami /groups /fo list whoami /priv | Информация о текущем пользователе и его привилегиях. Полезно в скриптах для проверки прав. |
systeminfo | systeminfo systeminfo /fo csv | Сводка по ОС, железу, обновлениям, сетевым интерфейсам. Может работать долго (>10 сек). Вывод в CSV удобен для анализа. |
driverquery | driverquery /v /fo csv | Список драйверов, их состояние, подписи. |
timeout | timeout /t 5 timeout /t -1 | Ожидание N секунд (с возможностью прервать по клавише). /t -1 — бесконечное ожидание (до нажатия). Альтернатива устаревшему ping 127.0.0.1 -n N >nul. |
choice | choice /c YNA /m "Continue? (Y/N/Abort)" if errorlevel 3 echo Aborted | Интерактивный выбор из вариантов. Код возврата = порядковый номер опции (1‑based). |
11. Интеграция с PowerShell и внешними инструментами
Хотя cmd остаётся актуальным, современные задачи часто требуют вызова более мощных утилит:
| Сценарий | Пример | Комментарий |
|---|---|---|
Вызов PowerShell из cmd | `powershell -Command "Get-Process | Where CPU -gt 100" powershell -File script.ps1 -Param1 value` |
| Запуск Python/Node/Java | python -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 CLI | dotnet --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 … — часто достаточны. |