word_up@vk
22-05-2013, 19:54
Доброго времени суток. Требовалось создать *.bat файл, который осуществит копирование файла по всем компьютерам IP адреса которых есть в списке, вот какой код получился:
Код @Set Spisok=1.txt
@Set File=list.txt
@Set Shara=d$
@Set Log=D:\Spisoklog.txt
@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%"
Список IP адресов хранится в файле 1.txt, файл который надо отправить list.txt, на каждом компьютере в сети расшарен диск D, ну и лог Spisoklog.txt...
Проблема в том, что не могу уже второй день найти ошибку, копирование не происходит и в лог-файл записывается отчёт, что копирования не произошло. Надеюсь свежий глаз заметит ошибку.
Код @Set Spisok=1.txt
@Set File=list.txt
@Set Shara=d$
@Set Log=D:\Spisoklog.txt
@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%"
Список IP адресов хранится в файле 1.txt, файл который надо отправить list.txt, на каждом компьютере в сети расшарен диск D, ну и лог Spisoklog.txt...
Проблема в том, что не могу уже второй день найти ошибку, копирование не происходит и в лог-файл записывается отчёт, что копирования не произошло. Надеюсь свежий глаз заметит ошибку.