Загрузка данных
@echo off
setlocal EnableExtensions
chcp 65001 >nul
REM ==================================================
REM ROBOCOPY - ПЕРЕНОС ДАННЫХ СО СТАРОГО ПК НА НОВЫЙ
REM ==================================================
REM ==================================================
REM 1. IP-АДРЕС СТАРОГО КОМПЬЮТЕРА
REM ==================================================
REM Укажи IP компьютера, С КОТОРОГО копируем.
REM Пример: 192.168.50.1
REM На каждом новом ПК укажи IP своего старого ПК.
set "OLD_PC=192.168.50.1"
REM ==================================================
REM 2. ПАПКА ДЛЯ ЛОГОВ
REM ==================================================
REM Здесь сохраняются отчеты о копировании.
REM Папка будет создана автоматически.
set "LOGDIR=C:\RoboLogs"
if not exist "%LOGDIR%" mkdir "%LOGDIR%"
REM ==================================================
REM 3. НАСТРОЙКА СКОРОСТИ И ПОВТОРОВ
REM ==================================================
REM MT:16 - 16 потоков (SSD/NVMe, сеть 1 Гбит)
REM R:0 - не повторять копирование при ошибке
REM W:0 - не ждать между попытками
REM J - оптимизация для больших файлов
REM E - копировать все подпапки, включая пустые
REM XJ - не переходить по junction-ссылкам
REM
REM Не используй /MIR: он может удалять файлы!
set "THREADS=16"
REM ==================================================
REM 4. СПИСОК ПАПОК ДЛЯ ПЕРЕНОСА
REM ==================================================
REM
REM Формат каждой строки:
REM call :COPY "ИСТОЧНИК" "НАЗНАЧЕНИЕ" "ИМЯ_ЛОГА"
REM
REM ИСТОЧНИК:
REM C$\Work означает C:\Work на старом ПК.
REM D$\Projects означает D:\Projects на старом ПК.
REM
REM НАЗНАЧЕНИЕ:
REM Локальный путь на НОВОМ компьютере.
REM
REM ИМЯ_ЛОГА:
REM Уникальное имя на латинице, без пробелов.
REM
REM УДАЛИ или ЗАМЕНИ примеры своими путями.
REM Чтобы отключить строку, добавь REM в начале.
REM ==================================================
call :COPY "C$\Work" "D:\Work" "Work"
call :COPY "D$\Projects" "D:\Projects" "Projects"
call :COPY "D$\Archive" "E:\Archive" "Archive"
REM call :COPY "C$\Temp" "D:\Temp" "Temp"
REM ==================================================
REM 5. ЗАВЕРШЕНИЕ
REM ==================================================
echo.
echo ================================================
echo ВСЕ ЗАДАНИЯ ОБРАБОТАНЫ
echo Логи: %LOGDIR%
echo ================================================
pause
exit /b
REM ==================================================
REM 6. ФУНКЦИЯ КОПИРОВАНИЯ
REM ==================================================
REM НИЖЕ НИЧЕГО МЕНЯТЬ НЕ НУЖНО
REM ==================================================
:COPY
set "SOURCE=\\%OLD_PC%\%~1"
set "DEST=%~2"
set "NAME=%~3"
echo.
echo ================================================
echo КОПИРОВАНИЕ: %NAME%
echo ИСТОЧНИК: %SOURCE%
echo НАЗНАЧЕНИЕ: %DEST%
echo ================================================
REM Проверяем доступность исходной папки
if not exist "%SOURCE%\" (
echo ОШИБКА: Исходная папка недоступна!
echo %SOURCE%
>>"%LOGDIR%\Errors.log" echo FAILED: %SOURCE%
exit /b 0
)
REM Запускаем копирование
robocopy "%SOURCE%" "%DEST%" ^
/E ^
/J ^
/MT:%THREADS% ^
/R:0 ^
/W:0 ^
/COPY:DAT ^
/DCOPY:DAT ^
/XJ ^
/NP ^
/TEE ^
/LOG+:"%LOGDIR%\%NAME%.log"
REM Проверяем код завершения Robocopy
if errorlevel 8 (
echo ОШИБКА: Некоторые файлы не скопированы!
>>"%LOGDIR%\Errors.log" echo ERROR: %NAME%
) else (
echo ГОТОВО: %NAME%
)
exit /b 0