| № | Вопрос | Код с комментариями |
| 1 | Что такое CMD и как открыть командную строку? | cmd.exe
# Или через Win+R → cmd
# Версия:
ver
# Справка:
help
|
| 2 | Что такое команда cd? | cd C:\Windows\System32
cd .. # на уровень вверх
cd /d D:\Projects # сменить диск
cd # показать текущий путь
|
| 3 | Что такое команды dir и md/rmdir? | dir # список файлов и папок
dir /w # широкий формат
dir /s # с подпапками
md myfolder # создать папку
rmdir myfolder # удалить пустую папку
rmdir /s /q myfolder # удалить с содержимым
|
| 4 | Что такое команды copy и del? | copy file1.txt file2.txt
copy *.txt C:\Backup\
del file.txt # удалить файл
del /f readonly.txt # принудительно
del /s *.tmp # рекурсивно
|
| 5 | Что такое команды ren и move? | ren old.txt new.txt
ren *.txt *.bak
move file.txt C:\Target\
move folder C:\Target\ # переместить папку
move /y file.txt C:\Target\ # без подтверждения
|
| 6 | Что такое команда type? | type file.txt
type file.txt | more # постранично
type file1.txt file2.txt > combined.txt # объединить
|
| 7 | Что такое команда cls? | cls
# Альтернатива:
echo off
cls
|
| 8 | Что такое команда echo? | echo Hello World
echo. # пустая строка
echo off # скрыть команды
echo %PATH% # вывести переменную
|
| 9 | Что такое команда help? | help # список всех команд
help dir # справка по dir
dir /? # альтернатива
help | find "copy" # поиск по справке
|
| 10 | Что такое команда exit? | exit # закрыть окно
exit /b 1 # выход из .bat с кодом 1
# В .bat:
EXIT /B 0 # успешное завершение
|
| 11 | Что такое SET и как объявить переменную? | SET name=John
SET age=25
echo %name%
SET PATH=%PATH%;C:\MyApp # дополнение PATH
SET # список всех переменных
SET name= # удалить переменную
|
| 12 | Что такое %PATH% и как его изменить? | echo %PATH%
setx PATH "%PATH%;C:\MyTools" # постоянно
# В сессии:
SET PATH=%PATH%;C:\MyApp
|
| 13 | Что такое %1-%9 и %*? | @echo off
echo Первый аргумент: %1
echo Второй: %2
echo Все аргументы: %*
echo Количество: %~1
echo %~nx1 # только имя файла из пути
|
| 14 | Что такое IF в CMD? | IF "%1"=="" (
echo Аргумент не задан
EXIT /B 1
)
IF EXIST file.txt (echo Файл существует)
IF %ERRORLEVEL% NEQ 0 (echo Ошибка!)
|
| 15 | Что такое SETLOCAL ENABLEDELAYEDEXPANSION? | @echo off
SETLOCAL ENABLEDELAYEDEXPANSION
SET count=0
FOR %%i IN (1 2 3) DO (
SET /a count=count+1
echo !count! # важно: ! вместо %
)
ENDLOCAL
|
| 16 | Что такое FOR в CMD? | @echo off
FOR %%i IN (1 2 3 4 5) DO echo %%i
FOR %%f IN (*.txt) DO echo %%f
FOR /L %%i IN (1,1,10) DO (
echo Число %%i
)
FOR /D %%d IN (*) DO rmdir /s /q %%d
|
| 17 | Что такое %ERRORLEVEL%? | some_command.exe
echo %ERRORLEVEL%
IF %ERRORLEVEL% NEQ 0 (
echo Команда завершилась с ошибкой
EXIT /B %ERRORLEVEL%
)
# или короче:
if errorlevel 1 (echo Ошибка >= 1)
|
| 18 | Что такое %CD%, %DATE%, %TIME%? | echo %CD% # текущая директория
echo %DATE% # текущая дата
echo %TIME% # текущее время
echo %RANDOM% # случайное число 0-32767
echo %COMPUTERNAME% # имя компьютера
echo %USERNAME% # имя пользователя
|
| 19 | Что такое %~dp0 и другие модификаторы? | @echo off
echo %~dp0 # диск + путь к скрипту
echo %~f0 # полный путь
echo %~n0 # имя файла без расширения
echo %~x0 # расширение
echo %~dpnx0 # полный путь + имя + расширение
|
| 20 | Что такое SET /A? | SET /a result=5+3
echo %result%
SET /a count+=1
SET /a "area=(10+5)*2"
SET /a bin=0b1010 # двоичная
SET /a hex=0xFF # шестнадцатеричная
|
| 21 | Что такое find и findstr? | find "error" log.txt
find /n "error" log.txt # с номерами строк
find /c "error" log.txt # количество
findstr "error warning" *.log
findstr /i "error" log.txt # без учета регистра
findstr /r "^[0-9].*error" log.txt # регулярка
|
| 22 | Что такое sort? | sort data.txt
sort /r data.txt # обратный порядок
type data.txt | sort # через пайп
sort /+3 data.txt # по 3-му символу
sort /unique data.txt # уникальные
|
| 23 | Что такое fc? | fc file1.txt file2.txt
fc /b file1.bin file2.bin # побайтово
fc /c file1.txt file2.txt # без учета регистра
fc /n file1.txt file2.txt # с номерами строк
|
| 24 | Что такое attrib? | attrib +r file.txt # только чтение
attrib -r file.txt # снять readonly
attrib +h secret.txt # скрытый
attrib +s +h system.dat # системный + скрытый
attrib /s -h *.* # рекурсивно
|
| 25 | Что такое xcopy? | xcopy /E /I source dest # с подпапками
xcopy /D /Y source dest # только новые
xcopy /EXCLUDE:excl.txt source dest
xcopy /C /Q /H /E /K source dest # полная копия с правами
|
| 26 | Что такое robocopy? | robocopy source dest /MIR # зеркало
robocopy source dest *.txt /S /R:3 /W:5
robocopy source dest /MOV # переместить
robocopy source dest /MON:1 # мониторинг
robocopy source dest /LOG:log.txt # лог
|
| 27 | Что такое forfiles? | forfiles /P C:\Logs /M *.log /D -7 /C "cmd /c del @file"
forfiles /P C:\Backup /S /M *.bak /D +0 /C "cmd /c echo @fname"
forfiles /P C:\ /M *.tmp /C "cmd /c if @fsize gtr 100000 del @file"
|
| 28 | Что такое comp? | comp file1.txt file2.txt
comp /a file1.txt file2.txt # ASCII
comp /l file1.txt file2.txt # номера строк
comp /n=100 file1.txt file2.txt # первые 100 строк
|
| 29 | Что такое команда mkdir с подпапками? | mkdir project\src\components
mkdir "project\docs\api"
mkdir a\b\c\d\e # все вложенные
# Если папки уже есть — просто тишина
|
| 30 | Что такое команда tree? | tree
tree /F # с файлами
tree /A # ASCII символы
tree /F | clip # скопировать в буфер
|
| 31 | Что такое ipconfig? | ipconfig
ipconfig /all # подробно
ipconfig /flushdns # сбросить DNS
ipconfig /release && ipconfig /renew
ipconfig /displaydns # кэш DNS
|
| 32 | Что такое ping? | ping google.com
ping -n 10 google.com # 10 пакетов
ping -t google.com # бесконечно
ping -l 1500 google.com # размер пакета
ping -4 google.com # только IPv4
|
| 33 | Что такое tracert? | tracert google.com
tracert -d google.com # без DNS
pathping google.com # трассировка с анализом потерь
pathping -n google.com # без DNS
|
| 34 | Что такое nslookup? | nslookup google.com
nslookup -type=mx gmail.com # MX записи
nslookup -type=ns google.com # NS записи
nslookup 8.8.8.8 # обратный запрос
nslookup -type=txt google.com
|
| 35 | Что такое netstat? | netstat -a # все соединения
netstat -an # без DNS
netstat -b # приложения (админ)
netstat -o # PID
netstat -ano | find ":80"
netstat -r # таблица маршрутизации
|
| 36 | Что такое route? | route print
route add 10.0.0.0 mask 255.0.0.0 192.168.1.1
route delete 10.0.0.0
route change 10.0.0.0 mask 255.0.0.0 192.168.1.2
route -p add 10.0.0.0 mask 255.0.0.0 192.168.1.1 # постоянно
|
| 37 | Что такое net use? | net use Z: \\server\share
net use Z: /delete
net use * \\server\share # следующая буква
net use \\server\share /user:DOMAIN\user pass
net use # список подключений
|
| 38 | Что такое net share? | net share
net share MyShare=C:\Shared
net share MyShare /delete
net share MyShare /grant:everyone,READ
net share MyShare /cache:no # без офлайн
|
| 39 | Что такое telnet/ssh? | telnet 192.168.1.1 80 # проверить порт
telnet # если включено
# SSH через OpenSSH на Windows:
ssh user@192.168.1.1
ssh -p 2222 user@host
ssh -i key.pem user@host
|
| 40 | Что такое curl в Windows? | curl https://api.example.com
curl -o file.json https://api.example.com/data
curl -H "Authorization: Bearer token" https://api.example.com
curl -X POST -d "name=test" https://api.example.com
curl -k https://self-signed.example.com # без SSL проверки
|
| 41 | Что такое chkdsk? | chkdsk C:
chkdsk C: /F # исправить ошибки
chkdsk C: /R # найти поврежденные сектора
chkdsk D: /V # выводить имена файлов
chkdsk /? # справка
|
| 42 | Что такое diskpart? | diskpart
# Внутри diskpart:
list disk
select disk 0
list partition
create partition primary size=10000
format fs=ntfs quick
assign letter=D
exit
|
| 43 | Что такое format? | format D: /FS:NTFS /Q # быстрое
format D: /FS:FAT32 /Q
format D: /FS:exFAT /Q
format D: /V:MyDrive # метка тома
format D: /P:2 # безопасное удаление
|
| 44 | Что такое vol и label? | vol C: # показать метку
label C: # показать/изменить
label D: MyData # установить метку
label # текущий диск
|
| 45 | Что такое fsutil? | fsutil fsinfo drives # список дисков
fsutil fsinfo volumeinfo C:
fsutil fsinfo ntfsinfo C:
fsutil dirty query C:
fsutil quota query C:
fsutil file createnew test.txt 1024 # файл 1KB
|
| 46 | Что такое wmic? | wmic os get caption,version # версия ОС
wmic cpu get name,numberofcores
wmic diskdrive get size,model
wmic logicaldisk get size,freespace,caption
wmic process where name="notepad.exe" delete
wmic service where name="Spooler" call stopservice
|
| 47 | Что такое systeminfo? | systeminfo
systeminfo | find "Total Physical Memory"
systeminfo | find "OS Name"
systeminfo /S remotePC # удаленный ПК
|
| 48 | Что такое driverquery? | driverquery
driverquery /v # подробно
driverquery /fo csv # как CSV
driverquery /si # подписанные
driverquery /nh # без заголовка
|
| 49 | Что такое tasklist/taskkill? | tasklist
tasklist /v # подробно
tasklist /fi "status eq running"
taskkill /im notepad.exe
taskkill /pid 1234 /f # принудительно
taskkill /fi "memusage gt 50000" # по памяти
|
| 50 | Что такое shutdown? | shutdown /s /t 60 # выключить через 60с
shutdown /r /t 0 # перезагрузить сейчас
shutdown /l # выйти из системы
shutdown /a # отменить
shutdown /h # гибернация
shutdown /s /f /t 0 # принудительно
|
| 51 | Что такое CALL в .bat? | @echo off
CALL :sub main.log
EXIT /B 0
:sub
set LOG=%1
echo %DATE% %TIME% >> %LOG%
echo Выполнено >> %LOG%
EXIT /B 0
|
| 52 | Что такое GOTO в .bat? | @echo off
IF NOT EXIST "config.ini" GOTO error
echo Запуск...
GOTO end
:error
echo Файл конфигурации не найден!
EXIT /B 1
:end
echo Успешно
|
| 53 | Что такое EXIT /B? | @echo off
IF "%1"=="" (
echo Укажите аргумент
EXIT /B 1
)
IF NOT EXIST "%1" (
echo Файл не найден
EXIT /B 2
)
echo Файл найден
EXIT /B 0
|
| 54 | Что такое CHOICE? | @echo off
echo [1] Запустить сервер
echo [2] Настройки
echo [3] Выход
CHOICE /C 123 /N /M "Выберите: "
IF errorlevel 3 GOTO exit
IF errorlevel 2 GOTO settings
IF errorlevel 1 GOTO start
:start
echo Запуск...
GOTO end
:settings
echo Настройки...
GOTO end
:end
echo Готово
|
| 55 | Что такое PAUSE? | @echo off
echo Нажмите Enter для продолжения...
pause > nul
echo Продолжаем...
PAUSE > nul — скрыть сообщение
pause — показать "Press any key..."
|
| 56 | Что такое TITLE? | @echo off
TITLE Мой установщик версии 1.0
echo Установка...
TIMEOUT /T 3 /NOBREAK >nul
TITLE Готово — Мой установщик
|
| 57 | Что такое COLOR? | @echo off
COLOR 0A # черный фон, зеленый текст
# 0=черный 1=синий 2=зеленый 3=голубой
# 4=красный 5=фиолетовый 6=желтый 7=белый
# 8=серый 9=светло-синий A=светло-зеленый
COLOR 4F # красный фон, ярко-белый текст
COLOR # сбросить
|
| 58 | Что такое DATE/TIME? | @echo off
echo %DATE% %TIME%
TIMEOUT /T 5 >nul
echo %DATE:~0,2% # день
echo %DATE:~3,2% # месяц
echo %DATE:~6,4% # год
echo %TIME:~0,2% # часы
echo %TIME:~3,2% # минуты
|
| 59 | Что такое AT/SCHTASKS? | schtasks /create /tn "MyTask" /tr "C:\script.bat" /sc daily /st 09:00
schtasks /create /tn "Backup" /tr "backup.bat" /sc weekly /d MON /st 02:00
schtasks /run /tn "MyTask"
schtasks /query /fo LIST /v
schtasks /delete /tn "MyTask" /f
# AT — устарела, вместо нее schtasks
|
| 60 | Что такое START? | start notepad.exe
start "" "C:\Program Files\app.exe"
start /min cmd /c script.bat # свернуто
start /max notepad.exe # развернуто
start /wait setup.exe # ждать завершения
start /B cmd /c long_task.bat # в том же окне
|
| 61 | Что такое REG QUERY? | REG QUERY "HKLM\Software\Microsoft\Windows\CurrentVersion"
REG QUERY "HKCU\Control Panel\Desktop" /v Wallpaper
REG QUERY "HKLM\Software" /s /c /f "Microsoft"
REG QUERY HKCU /v Path /ve # значение по умолчанию
|
| 62 | Что такое REG ADD? | REG ADD "HKCU\Software\MyApp" /v Setting /t REG_SZ /d "value1" /f
REG ADD "HKLM\System\CurrentControlSet\Services\MyService" /v Start /t REG_DWORD /d 2 /f
REG ADD "HKCU\Software\MyApp" /ve /d "DefaultValue" /f
|
| 63 | Что такое REG DELETE? | REG DELETE "HKCU\Software\MyApp" /v Setting /f
REG DELETE "HKCU\Software\MyApp" /f # удалить весь ключ
REG DELETE "HKLM\Software\MyApp" /va /f # все значения
REG DELETE "HKCU\Software" /f # удаление ветки (осторожно!)
|
| 64 | Что такое REG COPY? | REG COPY "HKCU\Software\MyApp" "HKCU\Software\MyAppBackup" /s /f
REG COPY "HKLM\Software\MyApp" "HKCU\Software\MyApp" /s /f
REG COPY HKLM HKCU\Temp /s # копирование ветки
|
| 65 | Что такое REG EXPORT? | REG EXPORT "HKCU\Software\MyApp" backup.reg
REG EXPORT "HKLM\SYSTEM\CurrentControlSet\Services" services.reg
# Можно открыть .reg файл в блокноте для редактирования
|
| 66 | Что такое REG IMPORT? | REG IMPORT backup.reg
# Или двойным кликом по .reg файлу
# Или:
regedit /s settings.reg # тихий импорт
# ВНИМАНИЕ: импорт изменяет реестр!
|
| 67 | Что такое REG LOAD? | REG LOAD "HKLM\TempHive" "C:\Users\User\NTUSER.DAT"
# Загружает файл куста для редактирования
# После работы:
REG UNLOAD "HKLM\TempHive"
|
| 68 | Что такое REG UNLOAD? | REG UNLOAD "HKLM\TempHive"
# Перед выгрузкой убедиться, что ключ не используется
# Выгружает ранее загруженный куст
|
| 69 | Что такое REG COMPARE? | REG COMPARE "HKCU\Software\MyApp" "HKCU\Software\MyAppBackup"
REG COMPARE HKCU HKCU\Temp /s # рекурсивно
REG COMPARE "HKLM\Software" "HKCU\Software" /ve # только default
|
| 70 | Что такое REG SAVE? | REG SAVE "HKLM\Software\MyApp" myapp.hiv
REG SAVE "HKCU\Software\MyApp" myapp.hiv /y
# Сохраняет в бинарном формате .hiv
# Для восстановления: REG RESTORE
|
| 71 | Что такое tasklist с фильтрами? | tasklist /fi "status eq running"
tasklist /fi "username eq %USERNAME%"
tasklist /fi "memusage gt 100000" /v
tasklist /fi "pid gt 1000" /fo csv
tasklist /s remotePC /u admin /p pass
|
| 72 | Что такое taskkill с фильтрами? | taskkill /f /im chrome.exe
REM убить все chrome
taskkill /pid 1234 /t # дерево процессов
taskkill /fi "windowtitle eq Notepad*" /f
taskkill /fi "memusage gt 500000" /f
|
| 73 | Что такое START с affinity и priority? | START /affinity 1 notepad.exe # 1-е ядро
START /affinity 3 notepad.exe # 1+2 ядра (бинарно 11)
START /high notepad.exe
START /realtime cmd.exe # осторожно!
START /low backup.bat # низкий приоритет
START /belownormal task.bat
|
| 74 | Что такое WMIC process? | wmic process get name,processid,workingsetsize
wmic process where name="notepad.exe" delete
wmic process call create "calc.exe"
wmic process where "processid=1234" set priority=128 # выше
wmic process list brief /format:csv
|
| 75 | Что такое PowerShell из CMD? | powershell -Command "Get-Process | Where-Object {$_.WorkingSet -gt 100MB}"
powershell -File script.ps1
powershell -NoProfile -Command "param($a) Write-Host $a" -args "Hello"
powershell -ExecutionPolicy Bypass -File install.ps1
|
| 76 | Что такое runas? | runas /user:Administrator cmd
runas /user:DOMAIN\Admin "mmc compmgmt.msc"
runas /savecred /user:Admin cmd # сохранить пароль
runas /profile /user:Admin cmd # загрузить профиль
|
| 77 | Что такое schtasks для запуска задач? | schtasks /create /tn "BackupTask" /tr "C:\backup.bat" /sc daily /st 03:00 /ru SYSTEM
schtasks /create /tn "Cleanup" /tr "cleanup.bat" /sc weekly /d SUN /st 01:00
schtasks /change /tn "BackupTask" /enable
schtasks /end /tn "BackupTask"
schtasks /delete /tn "Cleanup" /f
|
| 78 | Что такое shutdown с параметрами? | shutdown /r /o /t 0 # перезагрузка в доп. параметры
shutdown /r /fw /t 0 # перезагрузка в UEFI
shutdown /s /hybrid /t 0 # быстрый запуск
shutdown /r /f /t 0 /d p:4:1 # с кодом причины
shutdown /sg /t 0 # перезагрузка с автозапуском программ
|
| 79 | Что такое tscon/logoff? | query session # список сессий
query user # пользователи
query process # процессы
tscon 1 # подключиться к сессии 1
tsdiscon # отключить текущую сессию
logoff 1 # завершить сессию 1
reset session 1 # сбросить сессию
|
| 80 | Что такое powercfg? | powercfg /list # схемы питания
powercfg /setactive 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c
powercfg /change standby-timeout-ac 30 # 30 минут
powercfg /h off # отключить гибернацию
powercfg /energy # анализ энергопотребления
powercfg /batteryreport # отчет о батарее
|
| 81 | Что такое IF EXIST/IF NOT EXIST? | @echo off
IF EXIST "C:\Program Files\MyApp\app.exe" (
echo Приложение установлено
) ELSE (
echo Установите приложение
EXIT /B 1
)
IF NOT EXIST "logs" mkdir logs
|
| 82 | Что такое IF DEFINED? | @echo off
SET "myvar=Hello"
IF DEFINED myvar (
echo Переменная myvar=%myvar%
)
IF NOT DEFINED myvar (
echo Переменная не задана
SET /p myvar="Введите значение: "
)
|
| 83 | Что такое FOR /F? | @echo off
FOR /F "tokens=*" %%i IN ('dir /b *.txt') DO echo %%i
FOR /F "tokens=1,2 delims=," %%a IN (data.csv) DO echo %%a=%%b
FOR /F "usebackq tokens=*" %%i IN ("file with spaces.txt") DO echo %%i
FOR /F "skip=1 tokens=2 delims==" %%i IN ('set ^| find "PATH"') DO echo %%i
|
| 84 | Что такое FOR /R? | @echo off
FOR /R "C:\Projects" %%f IN (*.txt) DO (
echo %%f
attrib +r "%%f"
)
REM со счетчиком:
SETLOCAL ENABLEDELAYEDEXPANSION
SET count=0
FOR /R %%f IN (*.log) DO (
SET /a count+=1
echo !count!: %%f
)
ENDLOCAL
|
| 85 | Что такое FOR /D? | @echo off
FOR /D %%d IN (*) DO (
echo Папка: %%d
dir /b "%%d"
)
REM рекурсивно по папкам:
FOR /D /R %%d IN (*) DO (
echo %%d имеет подпапки
)
|
| 86 | Что такое SET /P? | @echo off
SET /p name="Введите имя: "
SET /p pass="Пароль: "
IF "%name%"=="" (
echo Имя не может быть пустым
EXIT /B 1
)
echo Привет, %name%!
echo %DATE% %TIME% %name% >> log.txt
|
| 87 | Что такое pipes (|) и redirection? | dir | find ".txt"
echo Hello > file.txt # перезаписать
echo World >> file.txt # добавить
dir 2> errors.txt # ошибки
dir > out.txt 2>&1 # вывод + ошибки
dir < input.txt # ввод из файла
(dir && echo OK) || echo FAIL
|
| 88 | Что такое redirects >, >>, 2>? | @echo off
REM > — перезапись, >> — добавление
ipconfig > network_info.txt
echo --- >> network_info.txt
ipconfig /all >> network_info.txt 2>&1
REM 2> — ошибки, 2>&1 — объединить
REM < — ввод из файла
REM | — пайп (передача вывода)
|
| 89 | Что такое error handling с ||? | @echo off
mkdir newfolder || (
echo Не удалось создать папку
EXIT /B 1
)
copy file.txt newfolder\ || (
echo Ошибка копирования
EXIT /B 2
)
echo ОК || echo Эта часть не выполнится
dir nonexistent 2>nul || echo Файл не найден
|
| 90 | Что такое delayed expansion на практике? | @echo off
SETLOCAL ENABLEDELAYEDEXPANSION
SET arr[0]=apple
SET arr[1]=banana
SET arr[2]=cherry
FOR /L %%i IN (0,1,2) DO (
echo !arr[%%i]!
)
REM цикл с изменением переменной:
SET total=0
FOR %%f IN (*.txt) DO (
CALL :getsize "%%f"
SET /a total+=!size!
)
echo Общий размер: %total% bytes
EXIT /B 0
:getsize
SET size=%~z1
EXIT /B 0
|
| 91 | Структура .bat файла — best practices. | @echo off
SETLOCAL ENABLEDELAYEDEXPANSION
REM === Конфигурация ===
SET "SCRIPT_DIR=%~dp0"
SET "LOG_FILE=%SCRIPT_DIR%app.log"
REM === Проверки ===
IF "%1"=="" (
echo Usage: %~n0 [command]
EXIT /B 1
)
REM === Основная логика ===
CALL :%1 2>nul
IF ERRORLEVEL 1 (
echo Ошибка выполнения команды %1
EXIT /B 1
)
EXIT /B 0
:install
echo Установка... >> "%LOG_FILE%"
EXIT /B 0
:start
echo Запуск... >> "%LOG_FILE%"
EXIT /B 0
|
| 92 | Exit codes — коды возврата. | @echo off
REM 0 = успех
REM 1 = общая ошибка
REM 2 = неверный аргумент
REM 3 = файл не найден
REM 4 = недостаточно прав
REM 5 = ресурс занят
CALL :validate_args %1
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
CALL :process_file %1
IF %ERRORLEVEL% NEQ 0 (
echo Код ошибки: %ERRORLEVEL%
EXIT /B %ERRORLEVEL%
)
EXIT /B 0
:validate_args
IF "%1"=="" EXIT /B 2
EXIT /B 0
:process_file
IF NOT EXIST "%1" EXIT /B 3
EXIT /B 0
|
| 93 | Логирование в .bat. | @echo off
SETLOCAL
SET "LOG=%~dp0script_%DATE:~6,4%%DATE:~3,2%%DATE:~0,2%.log"
SET "TS=%DATE% %TIME%"
CALL :log "Начало скрипта"
CALL :log "Аргументы: %*"
IF NOT EXIST "%1" (
CALL :error "Файл не найден: %1"
EXIT /B 1
)
CALL :log "Успешно: %1"
EXIT /B 0
:log
echo [%DATE% %TIME%] %* >> "%LOG%"
EXIT /B 0
:error
echo [%DATE% %TIME%] ERROR: %* >> "%LOG%"
echo Ошибка: %*
EXIT /B 0
|
| 94 | Конфигурационные файлы .ini для .bat. | @echo off
SETLOCAL
REM config.ini:
REM DB_HOST=localhost
REM DB_PORT=5432
REM DB_USER=admin
FOR /F "tokens=1,2 delims==" %%a IN (config.ini) DO (
IF "%%a"=="DB_HOST" SET "DB_HOST=%%b"
IF "%%a"=="DB_PORT" SET "DB_PORT=%%b"
IF "%%a"=="DB_USER" SET "DB_USER=%%b"
)
echo Подключение к %DB_HOST%:%DB_PORT% как %DB_USER%
|
| 95 | Меню-система в .bat. | @echo off
SETLOCAL
:MENU
CLS
echo ============================
echo СИСТЕМА УПРАВЛЕНИЯ
echo ============================
echo [1] Запустить сервер
echo [2] Остановить сервер
echo [3] Статус
echo [4] Логи
echo [5] Выход
echo ============================
CHOICE /C 12345 /N /M "Выберите: "
IF ERRORLEVEL 5 GOTO EXIT
IF ERRORLEVEL 4 GOTO LOGS
IF ERRORLEVEL 3 GOTO STATUS
IF ERRORLEVEL 2 GOTO STOP
IF ERRORLEVEL 1 GOTO START
:START
echo Запуск... > status.txt
echo Сервер запущен
PAUSE
GOTO MENU
:STOP
echo Остановлен > status.txt
echo Сервер остановлен
PAUSE
GOTO MENU
:STATUS
type status.txt 2>nul || echo Статус неизвестен
PAUSE
GOTO MENU
:LOGS
type app.log 2>nul || echo Логов нет
PAUSE
GOTO MENU
:EXIT
echo До свидания!
EXIT /B 0
|
| 96 | Backup скрипт на .bat. | @echo off
SETLOCAL ENABLEDELAYEDEXPANSION
SET "BACKUP_DIR=C:\Backups"
SET "SOURCE_DIR=C:\Important"
SET "DATE_STAMP=%DATE:~6,4%%DATE:~3,2%%DATE:~0,2%"
SET "BACKUP_FILE=%BACKUP_DIR%\backup_%DATE_STAMP%.zip"
IF NOT EXIST "%BACKUP_DIR%" mkdir "%BACKUP_DIR%"
IF NOT EXIST "%SOURCE_DIR%" (
echo Source directory not found
EXIT /B 1
)
REM Используем PowerShell для архивации
powershell -NoProfile -Command "Compress-Archive -Path '%SOURCE_DIR%*' -DestinationPath '%BACKUP_FILE%'"
IF EXIST "%BACKUP_FILE%" (
echo Backup created: %BACKUP_FILE%
FOR %%F IN ("%BACKUP_FILE%") DO echo Size: %%~zF bytes
) ELSE (
echo Backup failed!
EXIT /B 1
)
EXIT /B 0
|
| 97 | Deploy скрипт на .bat. | @echo off
SETLOCAL
SET "APP_DIR=C:\Apps\myapp"
SET "DEPLOY_ZIP=%~dp0build\app.zip"
SET "BACKUP_DIR=C:\Backups\app_%DATE:~6,4%%DATE:~3,2%%DATE:~0,2%"
IF NOT EXIST "%DEPLOY_ZIP%" (
echo Build not found: %DEPLOY_ZIP%
EXIT /B 1
)
REM Бекап текущей версии
IF EXIST "%APP_DIR%" (
mkdir "%BACKUP_DIR%"
move "%APP_DIR%*" "%BACKUP_DIR%" 2>nul
)
REM Распаковка новой версии
powershell -NoProfile -Command "Expand-Archive -Path '%DEPLOY_ZIP%' -DestinationPath '%APP_DIR%' -Force"
echo Deploy completed: %DATE% %TIME%
echo Version deployed to: %APP_DIR%
EXIT /B 0
|
| 98 | Scheduled task скрипт с schtasks. | @echo off
SETLOCAL
SET "TASK_NAME=DailyCleanup"
SET "SCRIPT_PATH=%~dp0cleanup.bat"
SET "SCHED_TIME=03:00"
schtasks /query /tn "%TASK_NAME%" >nul 2>&1
IF %ERRORLEVEL% EQU 0 (
echo Task already exists, updating...
schtasks /change /tn "%TASK_NAME%" /tr "%SCRIPT_PATH%" /ru SYSTEM
) ELSE (
echo Creating task...
schtasks /create /tn "%TASK_NAME%" /tr "%SCRIPT_PATH%" /sc daily /st "%SCHED_TIME%" /ru SYSTEM /rl HIGHEST /f
)
schtasks /query /tn "%TASK_NAME%" /fo LIST /v
EXIT /B 0
|
| 99 | File watcher с FORFILES. | @echo off
SETLOCAL ENABLEDELAYEDEXPANSION
SET "WATCH_DIR=C:\WatchFolder"
SET "LOG_FILE=C:\Logs\watcher.log"
SET "DAYS_OLD=-1"
IF NOT EXIST "%WATCH_DIR%" (
echo Directory not found
EXIT /B 1
)
echo Watching: %WATCH_DIR% at %DATE% %TIME% >> "%LOG_FILE%"
FORFILES /P "%WATCH_DIR%" /S /D %DAYS_OLD% /C "cmd /c echo [%DATE% %TIME%] Изменен: @path @fsize bytes >> "%LOG_FILE%""
REM Обработка новых файлов
FORFILES /P "%WATCH_DIR%" /M *.csv /D %DAYS_OLD% /C "cmd /c move @file "C:\Processed@fname_%DATE:~6,4%%DATE:~3,2%%DATE:~0,2%.csv""
echo Check completed. Log: %LOG_FILE%
EXIT /B 0
|
| 100 | Интерактивный скрипт установки. | @echo off
SETLOCAL ENABLEDELAYEDEXPANSION
TITLE Установщик MyApp v1.0
COLOR 0A
REM === ПРИВЕТСТВИЕ ===
CLS
echo ====================================
echo Добро пожаловать в установщик
echo ====================================
echo.
REM === ПРОВЕРКА ПРАВ ===
NET SESSION >nul 2>&1
IF %ERRORLEVEL% NEQ 0 (
COLOR 0C
echo Требуются права администратора!
echo Запустите скрипт от имени администратора.
PAUSE
EXIT /B 1
)
REM === ВЫБОР ПУТИ ===
SET "INSTALL_DIR=C:\Program Files\MyApp"
SET /p INSTALL_DIR="Путь установки [%INSTALL_DIR%]: "
IF NOT EXIST "%INSTALL_DIR%" mkdir "%INSTALL_DIR%"
REM === КОПИРОВАНИЕ ===
echo Копирование файлов...
xcopy /E /I /Y "%~dp0files*" "%INSTALL_DIR%"
IF %ERRORLEVEL% NEQ 0 (
echo Ошибка копирования!
PAUSE
EXIT /B 1
)
REM === СОЗДАНИЕ ЯРЛЫКА ===
set "DESKTOP=%USERPROFILE%\Desktop"
echo Создание ярлыка на рабочем столе...
powershell -NoProfile -Command "$s=(New-Object -COM WScript.Shell).CreateShortcut('%DESKTOP%\MyApp.lnk');$s.TargetPath='%INSTALL_DIR%\app.exe';$s.Save()"
REM === ДОБАВЛЕНИЕ В PATH ===
echo Добавление в PATH...
SETX PATH "%PATH%;%INSTALL_DIR%"
REM === ЗАВЕРШЕНИЕ ===
COLOR 0A
echo.
echo ====================================
echo Установка успешно завершена!
echo ====================================
echo Установлено в: %INSTALL_DIR%
echo.
PAUSE
EXIT /B 0
|
CMD — Командная строка Windows: вопросы, практические задания и ответы с кодом
Темы
Вопросы и ответы
Практические задания
Лицензия
MIT