Страница: 1 |
Страница: 1 |
Вопрос: Cравнить, переименовать, скопировать файл
Добавлено: 11.11.10 00:09
Автор вопроса: Advokat
У меня проблема в автоматизации обновления, мне необходимо:
Сравнить файл на рабочем ПК пользователя с файлом на сервере, если файл изменился, то сменить расширение файлу на ПК пользователя, затем скопировать файл с сервера на ПК пользователя.
Как это сделать пока не знаю, надеюсь на помощь.
Ответы
Всего ответов: 8
Номер ответа: 1
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #1
Добавлено: 11.11.10 00:47
Маловероятно что это получится сделать на vbscript.
Я бы на сервере поднял WCF сервис, который по запросу ищет все файлы в определенных папках, подсчитывает контрольную сумму. На клиенте прогармму в трей, или службу, которые периодически опрашивают этот WCF сервис и выполняют сравнение контрольных сумм с контрольными сумма файлов на диске. Если контрольные суммы не совпадают - значит определенные файлы нужно скачать с сервера (можно по тому же WCF) и сохранить на диск.
Номер ответа: 2
Автор ответа:
Advokat
Вопросов: 1
Ответов: 4
Профиль | | #2
Добавлено: 11.11.10 00:59
Извините, уточняю: сравнения будет достаточно и по дате, либо размеру, сервером может выступать любой ПК (это неважно, его можно выбрать любой, сделав завязку именно на него), главное раз или два в сутки проверять и при необходимости обновлять файл с определенного IP (сервера), т.е. будет достаточно в автозагрузку кинуть скрипт.
Номер ответа: 3
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #3
Добавлено: 11.11.10 04:48
Связь с сервером выполняется по HTTP? Тогда должна быть включена опция листинга дирректорий. Тогда можно получить список файлов и папок в определенной папке. А отправив запрос HEAD - получить дату и размер файла (при услови что веб-сервер отдает такюу информацию)
Номер ответа: 4
Автор ответа:
Advokat
Вопросов: 1
Ответов: 4
Профиль | | #4
Добавлено: 11.11.10 07:43
Сервер - локальный компьютер, файл необходимо взять отсюда "\\192.168.1.11\exchange\Upd\qwerty.db", если он отличается (например по дате создания или размеру) от локального "C:\Programm Files\proga\qwerty.db", то сменить расширение локальному файлу на "old"C:\Programm Files\proga\qwerty.old, возможно заменив старый) и скопировать "qwerty.db" с сервера вместо переименованного локального.
Номер ответа: 5
Автор ответа:
Advokat
Вопросов: 1
Ответов: 4
Профиль | | #5
Добавлено: 11.11.10 07:47
В итоге копирование что вроде:
Но необходимо добавить сравнение и переименование старого файла, а по возможности упрастить этот пример, т.к. он кидает все файлы из папки, хотя там всегда один файл...
Номер ответа: 6
Автор ответа:
Advokat
Вопросов: 1
Ответов: 4
Профиль | | #6
Добавлено: 11.11.10 07:48
"_" & Folder.Name & - лишнее, не обращайте внимания... ))
Номер ответа: 7
Автор ответа:
Nezhniy
ICQ: 419841508
Вопросов: 9
Ответов: 100
Web-сайт:
Профиль | | #7
Добавлено: 11.11.10 15:30
а ты хочешь именно на вбс сделать , владеешь какими нибудь языками ? а то форум про вб , насчет вбс у тебя врятли получится , кстати на вбс каспер при усиленной защите будет ругаться .
Номер ответа: 8
Автор ответа:
Шпион
ICQ: 250543104
Вопросов: 13
Ответов: 118
Профиль | | #8
Добавлено: 14.11.10 14:25
' define vars and create objects
strFrom="\\server1\share\filename.txt"
strTo="c:\filepath\filename.txt"
set objFSO=Createobject("Scripting.Filesysteobject"
Do
' get access to files
set objFile1=objFSO.GetFile(strFrom)
set objFile2=objFSO.GetFile(strTo)
' compare files by size
If objFile1.Size<>objFil2.Size Then
' split filename and path by dots
a=split(strTo,"."
b=""
' build filename and path without extension
for i=0 to ubound
b=b & a(i) & "."
next
' delete file
' If destination is an existing file, an error occurs.
' http://msdn.microsoft.com/en-us/library/2wcf3ba6(VS.85).aspx
if objFSO.FileExists(b & "BAK"=True Then objFSO.DeleteFile b & "BAK",True
objFSO.MoveFile strTo, b & "BAK"
objFSO.CopyFile strFrom,StrTo
end if
'wait 30 seconds
Wscript.Sleep 30000
loop
you can learn scripting.filesystemobject by clicking here -> http://www.google.ru/search?sourceid=chrome&ie=UTF-8&q=scripting.filesystemobject+getfile