Копирование по сети данных пользователей

mikluxa_maklay

Новый пользователь
Сообщения
4
Реакции
0
CMD/BATCH:
@echo off
for /F "delims=" %%i in (C:\temp\list.txt) do set v=%%i
echo %v%

for /f "skip=1" %%k in ('QUSER /server:%v%') do (
for %%j in (%%k) do set "alias=%%j"
)
 
echo %alias%>C:\temp\list2.txt

for /F "delims=" %%t in (C:\temp\list2.txt) do set z=%%t
echo %z%

set DirName=%v%
set DirName2=%z%
set SourceDir=\\%DirName%\C$\Users\%z%\
set BackupDir=\\report-mvs\C$\Temp1\%v%

set h=%time:~0,2%
set h=%h: =0%
set FullBackupDir=%BackupDir%[I]%date%[/I]%h%%time:~3,2%%time:~6,2%\

md %FullBackupDir%

robocopy %SourceDir% %FullBackupDir%\ /E /ZB /J /NFL /NDL /NJH /NJS /NC /NS /NP 2>nul >nul

for /f "tokens=* delims=" %%D in ('dir %BackupDir% /ad /b /o-d') do (
    if not %%D=="" (
        if not !NumFolders!==0 (
            set /a NumFolders-=1
        ) else (
            rd /s /q %BackupDir%%%D 2>nul >nul
        )
    )
)
echo %alias%>C:\temp\list2.txt
pause
Помогите модернизировать код для того чтобы можно копировать только определенные каталоги из профиля пользователя. Например "Desktop","Documents". Пока он копирует весь профиль пользователя. list - содержит имя компьютера, list2 - для активного пользователя.
 
Последнее редактирование модератором:

Dragokas

Angry & Scary Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
6,847
Реакции
6,312
Здравствуйте!
Попробуйте так:
CMD/BATCH:
@echo off
for /F "delims=" %%i in (C:\temp\list.txt) do set PcName=%%i
echo "%PcName%"

for /f "skip=1" %%k in ('QUSER /server:%PcName%') do (
    for %%j in (%%k) do set "alias=%%j"
)
echo %alias%>C:\temp\list2.txt

for /F "delims=" %%t in (C:\temp\list2.txt) do set ActiveUser=%%t
echo "%ActiveUser%"

call :Backup Desktop
call :Backup Documents
pause
goto :eof

:Backup
    set "SourceDir=\\%PcName%\C$\Users\%ActiveUser%\%~1\"
    set "BackupDir=\\report-mvs\C$\Temp1\%PcName%\%~1"

    set "h=%time:~0,2%"
    set "h=%h: =0%"
    set "FullBackupDir=%BackupDir%[I]%date%[/I]%h%%time:~3,2%%time:~6,2%\"

    md "%FullBackupDir%"

    robocopy "%SourceDir%" "%FullBackupDir%\" /E /ZB /J /NFL /NDL /NJH /NJS /NC /NS /NP 2>nul >nul

    for /f "tokens=* delims=" %%D in ('dir "%BackupDir%" /ad /b /o-d') do (
        if not %%D=="" (
            if not !NumFolders!==0 (
                set /a NumFolders-=1
            ) else (
                rd /s /q "%BackupDir%%%D" 2>nul >nul
            )
        )
    )
exit /b
 

Dragokas

Angry & Scary Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
6,847
Реакции
6,312
Поставьте команду echo перед robocopy и посмотрите, верные ли пути возвращает.
 

mikluxa_maklay

Новый пользователь
Сообщения
4
Реакции
0
Вот что выдает. по факту все верно. именно оттуда именно туда.

Самое интересное что каталоги то он создает на удаленной машине. только ни чего не копирует туда. Мне кажется Robocopy не подходит а нужно использовать обыкновенный Copy

1674212054044
 
Последнее редактирование:

Dragokas

Angry & Scary Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
6,847
Реакции
6,312
Ну теперь сравниваем, есть ли исходный путь, и читаем справку по robocopy.
Удалите 2>nul >nul и увидите, что ком. строка вам скажет, что команда составлена криво. Как минимум /J лишняя и вот этот концевой слеш не нужно указывать \"
В помощь:
 
Последнее редактирование:

Dragokas

Angry & Scary Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
6,847
Реакции
6,312
Мне кажется Robocopy не подходит а нужно использовать обыкновенный Copy
нет, при копировании по сети robocopy или любое другое средство, умеющее сверять КС и повторно отправлять пакеты при разрыве связи, - обязательно.
Сеть, даже локальная, это нестабильная штука, и это нужно учитывать.
 
Последнее редактирование:

mikluxa_maklay

Новый пользователь
Сообщения
4
Реакции
0
нет, при копировании по сети robocopy или любое другое средство, умеющее сверять КС и повторно отправлять пакеты при разрыве связи, - обязательно.
Сеть, даже локальная, это нестабильная штука, и это нужно учитывать.
Большое спасибо за помощь! разобравшись с robocopy и скриптик поехал.
 
Сверху Снизу