Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Копирование файла на несколько IP (http://forum.oszone.net/showthread.php?t=208769)

Moksar 11-06-2011 21:08 1692814

Копирование файла на несколько IP
 
Копирование файла на несколько IP
Помогите с батником.
Файл который лежит в C:\Test ,название get.xml. Нужно скопировать на несколько (100-200) IP пример \\192.168.0.1\obmen$$\shara Айпишники брать например из C:\IP.txt . Перед копирование пинг,нет пинга переход к другому айпишнику.(процесс удачного копирования желательно обозначить как и неудачный пинг)
Реализуемо?

megaloman 11-06-2011 23:33 1692885

Код:

@Echo Off

Set Spisok=D:\Delete\Spisok.ip
Set File=D:\Delete\get.xml
Set Shara=obmen$$\shara\
Set Log=D:\Delete\Spisok.log

Echo +++ >> "%Log%"
Echo +++ %Date% %Time% ++++++++++++++++++++++++ >>"%Log%"
Echo +++ >> "%Log%"

FOR /F "usebackq delims=" %%i IN ("%Spisok%") DO Call :CopyTo %%i
GoTo :Eof

:CopyTo
ping -n 1 %1 >nul

if not %Errorlevel%==0 (
  Echo --- Узел %1 не пингуется >> "%Log%"
  GoTo :Eof
)

Copy "%File%" "\\%1\%Shara%" >nul 1>nul 2>nul

if %Errorlevel%==0 echo +++ Успешно    Copy "%File%" "\\%1\%Shara%" >> "%Log%"
if not %Errorlevel%==0 echo --- Не удалось Copy "%File%" "\\%1\%Shara%" >> "%Log%"


koresaram 14-02-2018 17:34 2797953

а если на рабочий стол надо файл кинуть, там прямо русскими буквами в батнике писать путь?

DJ Mogarych 14-02-2018 20:04 2797987

Да, только файл сохраняйте в кодировке CP866 (DOS), и пути с пробелами заключайте в кавычки (" ").

koresaram 14-02-2018 20:35 2797999

то есть для моего случая будет так выглядеть?

@Echo Off

Set Spisok=D:\Delete\Spisok.ip
Set File=D:\Delete\get.xml
Set Shara=C:\Users\ПОЛЬЗОВАТЕЛЬ\Desktop
Set Log=D:\Delete\Spisok.log

Echo +++ >> "%Log%"
Echo +++ %Date% %Time% ++++++++++++++++++++++++ >>"%Log%"
Echo +++ >> "%Log%"

FOR /F "usebackq delims=" %%i IN ("%Spisok%") DO Call :CopyTo %%i
GoTo :Eof

:CopyTo
ping -n 1 %1 >nul

if not %Errorlevel%==0 (
Echo --- Узел %1 не пингуется >> "%Log%"
GoTo :Eof
)

Copy "%File%" "\\%1\%Shara%" >nul 1>nul 2>nul

if %Errorlevel%==0 echo +++ Успешно Copy "%File%" "\\%1\%Shara%" >> "%Log%"
if not %Errorlevel%==0 echo --- Не удалось Copy "%File%" "\\%1\%Shara%" >> "%Log%"


Время: 17:09.

Время: 17:09.
© OSzone.net 2001-