Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - копирование файлов за текущую дату с сервера на сервер

Ответить
Настройки темы
CMD/BAT - копирование файлов за текущую дату с сервера на сервер

Новый участник


Сообщения: 3
Благодарности: 1

Профиль | Отправить PM | Цитировать


Доброе время суток. В общем проблема заключается в том, что есть файлы с расширением *.dsus в папке на сервере, нужно чтобы они копировались на др сервер только за сегодняшнее (текущее) число, с заменой одинаковых файлов. Огромное спасибо за помощь.
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:29, 29-06-2010

 

Пользователь


Сообщения: 140
Благодарности: 92

Профиль | Отправить PM | Цитировать


Очень мало сведений, надо больше информации.... Код должен выполняться на одном из серверов или ? Пока посмотри тут: http://forum.oszone.net/thread-169489.html
и тут: http://forum.oszone.net/thread-179316.html (батник)


и пример ( нужна утилита NcFTP Client 3.2.3 for Microsoft Windows):
Код: Выделить весь код
@ECHO OFF
set archive="C:\obmen\archive\" && set obmen="C:\obmen\zayav\"
set tempfld="C:\obmen\temp\" && set dd=%DATE:~0,2%
set mm=%DATE:~3,2% && set yyyy=%DATE:~8,2%
set imya=%dd%%mm%%yyyy%

IF NOT EXIST %obmen%zayav.dbf goto end

copy %obmen%zayav.dbf %tempfld%alieva%imya%(1).dbf
Echo Идет отправка!

"C:\Program Files\NcFTP\ncftpput.exe" -F -u user -p passw 192.168.0.55 /zayav C:\obmen\temp\alieva%imya%(1).dbf

If errorlevel 1 Echo !!Ошибка соединения!! & goto end2
del %tempfld%*.* /q

Echo Успешно!, для продолжения нажмите любую кнопку...
pause>nul

copy %obmen%zayav.dbf %archive%os%imya%.dbf
goto :EOF

:end
Echo Отсутствуют файлы для передачи!
pause
goto :EOF
:end2
del %tempfld%*.* /q
pause
del c:\obmen\obmen.bat /q
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:09, 29-06-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 3
Благодарности: 1

Профиль | Отправить PM | Цитировать


Запускаться батник будет на "сервер1" (сервера в домене, если конечно это какнить поможет), на "сервер2" есть папка в которую и нужно копировать эти файлы, папка с общим доступом с полными правами на изменение/запись уже расшарена. с ftp вариант не устраивает, но огромное спасибо и на этом!!!

Отправлено: 15:41, 29-06-2010 | #3


Пользователь


Сообщения: 140
Благодарности: 92

Профиль | Отправить PM | Цитировать


6a6yko,

почему вариант с ftp не устраивает? К папке на "сервер 2" открыт общий доступ и её можно подключить как сетевой диск? Врем копирования роль играет? и сами файлы *.dsus находятся в одной папке?

На скорую руку такая штука получилась, проверяй:

Код: Выделить весь код
 
@Echo Off&&Chcp 866

net use X: адрес пароль /user:имя_пользователя /persistent:no
ping -n 2 1500 127.0.0.1>nul

if exist "X:\" (( call :copy_file
                       net use X:  /Delete
                       goto :eof)) else (Echo Ошибка подключения!
                                                  goto :eof)

:copy_file
set $num=0
Set $SCR=F:\exe\
Set $SCF=*.dsus

Set $DCR=F:\exe\qwer
Set $Obj=%$SCR%:%$SCF%

for /F "tokens=* Delims=" %%a In ('Where %$Obj% ') do (set /a $num+=1 
                                                       call :action "%%a" "%%~ta")
Echo Скопировано %$num% файлов!!!
goto :eof

:action
set ch=%~2
set ch=%ch:~0,10%

if "%ch%"=="%date%" (( if not exist $DCR md %$DCR%\
                       copy /v /y %1 %$DCR%\)) else goto :eof

Тебе нужно под себя отредактировать пути в переменных:

Set $SCR=F:\exe\ и Set $DCR=F:\exe\qwer


Тоже самое, но *****.vbs
Выделенное под замену....

Код: Выделить весь код
 

Option Explicit
Dim objWshNetwork, objShell, objFolder, objFSO, objFile
Dim strPath2SourceFolder, strPath2RootDestFolder
Dim intErrLevel, WshNetwork, strShare, strDrive, strDescriptiton

strShare        = "\\HPPAVILION-PC\exe"
strDrive        = "X:"
strDescriptiton = "Resourse"

Set objWshNetwork = WScript.CreateObject("WScript.Network")
objWshNetwork.MapNetworkDrive strDrive, strShare

Set objShell    = WScript.CreateObject("Shell.Application")
Set objFolder  = objShell.NameSpace(strDrive)

If not (objFolder Is Nothing) Then
    objFolder.Self.Name = strDescriptiton
else
WScript.Echo "[" & strShare & "] is not exists." 
intErrLevel = 1
End If

Set objFolder   = Nothing
Set objShell     = Nothing
Set objWshNetwork = Nothing

strPath2SourceFolder     = "F:\exe"
strPath2RootDestFolder = "\\HPPAVILION-PC\exe\qwer"
intErrLevel = 0

Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
For Each objFile In objFSO.GetFolder(strPath2SourceFolder).Files
If UCase(objFSO.GetExtensionName(objFile.Name)) = UCase("dsus") and _
DateDiff("D", objFile.DateLastModified, Now) = 0 then
If Not objFSO.FolderExists(strPath2RootDestFolder) Then
objFSO.CreateFolder strPath2RootDestFolder          
End If

objFile.COPY strPath2RootDestFolder & "\"
End If

WScript.Sleep 100000

Set WshNetwork = WScript.CreateObject("WScript.Network")
WshNetwork.RemoveNetworkDrive strDrive, false, false
Next
сетевой диск подключается только на время копирования...

Последний раз редактировалось deepred, 13-07-2010 в 10:18.

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:51, 29-06-2010 | #4


Новый участник


Сообщения: 3
Благодарности: 1

Профиль | Отправить PM | Цитировать


Ответ дать не могу, начальник сказал никаких ftp и всё =/// Да, можно подключить как сетевой диск. Время не играет, играет роль только текущая дата. Да, все файлы в одной папке.

Отправлено: 16:03, 29-06-2010 | #5


Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


Добрый день! Долго искал в Интернете но так и не нашел решения для моей задачи
Помогите пожалуйста с батником который копирует из папки А в папку В только файлы текущей даты создания. Спасибо!

Отправлено: 11:24, 06-05-2011 | #6


Ветеран


Contributor


Сообщения: 2733
Благодарности: 1698

Профиль | Отправить PM | Цитировать


zenner, 6a6yko, Если в системе дата в формате дд.мм.гггг то

xcopy /D:%Date:~3,2%-%Date:~0,2%-%Date:~6,4% /Y D:\A\*.* D:\B\

При копировании с компьютера на компьютер можно указать сетевые пути (сетевой диск делать вовсе не обязательно), лишь бы хватало прав у пользователя, который запускает команду, на чтение исходных файлов на одном компьютере и на запись для копий на другом.

xcopy /D:%Date:~3,2%-%Date:~0,2%-%Date:~6,4% /Y \\Комп1\A\*.dsus \\Комп2\B\

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 06-05-2011 в 12:47.

Это сообщение посчитали полезным следующие участники:

Отправлено: 12:41, 06-05-2011 | #7


Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


Megaloman Спасибо Вам большое за помощь! А Вы не могли бы обьяснить что означает 3,2% 0,2 и 6,4%
Спасибо!!!!

Отправлено: 13:59, 06-05-2011 | #8


Ветеран


Contributor


Сообщения: 2733
Благодарности: 1698

Профиль | Отправить PM | Цитировать


Из хелпа xcopy (xcopy /?)
/D:m-d-y Копирует файлы, измененные либо в указанный день, либо после.

Читаем хелп Set (Set /?)
В переменной %Date% при соответствующей настройке системы содержится дата в виде
дд.мм.гггг
Соответственно %Date:~3,2% вырежет из даты 2 знака начиная с 3 позиции (если считать символы начиная с 0), то есть мм
Аналогично и остальные символы
Как результат, получим /D:mm-dd-yyyy, (для сегодня, например, /D:05-06-2011), что и требуется команде xcopy (надеюсь, с датами Вы не шалите и файлов с завтрешней датой у Вас нет)

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:28, 06-05-2011 | #9


Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


Еще раз Спасибо!!!!

Отправлено: 15:51, 06-05-2011 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - копирование файлов за текущую дату с сервера на сервер

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Копирование файлов с моего пк на FTP-сервер zeroua Скриптовые языки администрирования Windows 13 04-09-2012 12:57
CMD/BAT - +VBS: копирование файлов с сервера в папку установки проги la_vanille_ciel Скриптовые языки администрирования Windows 27 09-04-2008 11:53
Можно ли запретить копирование файлов на сервер по маске admyes Microsoft Windows NT/2000/2003 1 08-12-2005 06:44
Копирование файлов с сервера Alexeus Microsoft Windows NT/2000/2003 7 19-05-2004 15:31
Закаска файлов на свой сервер, с другого сервера Pawel gor Вебмастеру 1 08-04-2004 23:03




 
Переход