Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - ASP и VBScript

Страница: 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
В итоге копирование что вроде:
  1.  
  2. Set FSO = CreateObject("Scripting.FileSystemObject")
  3.  
  4. Folders2Folder FSO.GetFolder("\\192.168.1.11\exchange\Upd")
  5.  
  6. Sub Folders2Folder(Folder)
  7.   For each File in Folder.Files
  8.     FSO.CopyFile File.Path, "C:\Programm Files\proga\" & FSO.GetBaseName(File) & "_" & Folder.Name & "." & FSO.GetExtensionName(File)
  9.   Next
  10. End Sub


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

Ответить

Номер ответа: 6
Автор ответа:
 Advokat



Вопросов: 1
Ответов: 4
 Профиль | | #6 Добавлено: 11.11.10 07:48
"_" & Folder.Name & - лишнее, не обращайте внимания... ))

Ответить

Номер ответа: 7
Автор ответа:
 Nezhniy



ICQ: 419841508 

Вопросов: 9
Ответов: 100
 Web-сайт: www.helpim.ru
 Профиль | | #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(a)
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

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам