Показать полную графическую версию : [решено] Помогите сделать батник для копирование файлов с удаленых ip
Есть сеть около 1000 машин,на каждой машине есть папка \\10.168.Y.X\test в этой папке создается каждый день .xml файлик.
Вопрос можно ли написать такой батник что бы при запуске из \\10.168.Y.X\test копировал на мою машину,скажем в C:\gathering,нужный мне .xml за определенную дату.Проблема в том что машин много и названия этих .xml у всех своё и каждый день.Так же машины с которых нужно скопировать каждый день разные(в день приходится руками забирать эти xml со 70-100 машин) .Хотелось бы каждый день меняя в батнике ip на актуальные избавится от этой проблемы.Да и не все машины бывают в сети.Желательно было бы что бы батник такие машины игнорил.
P.S.Особо не пинайте с таким раньше не сталкивался.
megaloman
25-09-2010, 20:53
@Echo off
Set DD_MM_YYYY=01.04.2007
Set To=C:\gathering
Set Maska=*.xml
Call :CopyData "\\10.168.1.1\test"
Call :CopyData "\\10.168.2.2\test"
Call :CopyData "\\10.168.3.3\test"
Call :CopyData "\\10.168.4.4\test"
Call :CopyData "\\10.168.5.5\test"
GoTo :Eof
:CopyData
rem ----------------------------- Тест на доступ к исходной папке
If Not Exist "%~1\*.*" (
Echo --- Указанный путь недоступен %1
GoTo :Eof
)
rem ----------------------------- Цикл по файлам в папке по маске
FOR %%i IN ("%~1\%Maska%") DO Call :CopyDataFind "%%~ti" "%%i"
GoTo :Eof
:CopyDataFind
rem ----------------------------- Поиск и копирование файла за указанную дату
Set DMY=%~1
If %DD_MM_YYYY%==%DMY:~0,10% (
Copy %2 "%To%\" >nul 1>nul
If Exist "%To%\%~nx2" (
Echo +++ Успешно скопирован %2
) Else (
Echo --- Не удалось скопировать %2
)
)
GoTo :Eof
В коде указываем дату файлов, путь, куда копируем, маску файлов. В системе формат даты должен быть dd.mm.yyyy, в ином случае требуется доработка.
В строках Call указываем, адреса откуда копируем .
Если Вы руками забираете нечто по указанным путям, значит, доступ по чтению (по крайней мере) у Вас имеется.
На экране отражаем процесс копирования.
В принципе, то же самое можно поместить и в лог-файл.
Спасибо большое!!Неожидал что так во сразу)
P.S.Протестил- работает без нареканий спасибо еще раз)
megaloman
30-09-2010, 20:22
Если надо брать ip из текстового файла (например,zzz.txt), то замените кусок кода от Echo до GoTo
@Echo off
Set DD_MM_YYYY=01.04.2007
Set filename=D:\zzzz.txt
Set To=C:\gathering
Set Maska=*.xml
FOR /F "usebackq delims=" %%f IN (%filename%) DO Call :CopyData "\\%%f\test"
GoTo :Eof
Спасибо!!Выручил еще раз)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC