BAT‑файл с механизмом отката (восстановления исходной папки) в случае ошибки при копировании: bat @echo off setlocal :: Настройки set "SOURCE_DIR=C:\путь\к\исходной\директории" set "DEST_DIR=C:\путь\к\целевой\директории" set "LOG_FILE=C:\путь\к\логу\copy_log.txt" set "BACKUP_DIR=%TEMP%\copy_backup_%DATE:/=_%_%TIME::=_%\" :: Очищаем временные переменные set ERROR_OCCURRED=0 :: Создаём лог‑файл с отметкой времени echo [%DATE% %TIME%] Начало копирования >> "%LOG_FILE%" :: Проверяем существование исходной директории if not exist "%SOURCE_DIR%\" ( echo [%DATE% %TIME%] ОШИБКА: Исходная директория не найдена: "%SOURCE_DIR%" >> "%LOG_FILE%" echo Ошибка: исходная директория не найдена. exit /b 1 ) :: Создаём резервную копию исходной директории перед копированием echo [%DATE% %TIME%] Создаю резервную копию "%SOURCE_DIR%" в "%BACKUP_DIR%" >> "%LOG_FILE%" xcopy /E /H /K /Y /C "%SOURCE_DIR%\*" "%BACKUP_DIR%\" >> "%LOG_FILE%" 2>&1 if errorlevel 1 ( echo [%DATE% %TIME%] ОШИБКА: Не уда