Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Помогите с VBS скриптом (http://forum.oszone.net/showthread.php?t=216114)

coptercor 21-09-2011 08:10 1757175

Помогите с VBS скриптом
 
Помогите написать скрипт который смотрит папку на флешке, сравнивет в этой папке все файлы по дате изменения, выбирает самый новый и копирует в папку на сервер при условии что файл на сервере с более старой датой изменения. Если на сервере файл более новый выдает сообщение что копирование не требуется.
Очень жду вашей помощи.

Actor 21-09-2011 08:20 1757181

GoodSync или бесплатные аналоги есть, это лучше чем изобретать веслоипед, причем как тут вижу с квадратными колесами

coptercor 21-09-2011 08:48 1757190

мы используем такой скрипт:
'VBScript
Dim fso, f, folderspec, filespec
Dim WshShell, app
Dim strKey, strValue, strBase, strArhivFile
Dim title, prompt,strArhivFolder4,strDisk,strBaseServer,strArxivServer
'On Error Resume Next

Set WshShell=WScript.CreateObject("WScript.Shell")
Set fso=CreateObject("Scripting.FileSystemObject")

strDisk = "F:\1\2\3"
strBaseServer = "\\SERVER\1\2\3"
strArxivServer = "\\SERVER\1\2\3\Архив"

strArhivFolder1="C:\1"
strArhivFolder2="C:\1\2"
strArhivFolder3="C:\SERVER\1\2\3"
strArhivFolder4="C:\SERVER\1\2\3\Архив"
' Создаем папки на локальном компьютере на диске С:

If not (fso.FolderExists(strArhivFolder1)) Then
Set f = fso.CreateFolder(strArhivFolder1)
End If
If not (fso.FolderExists(strArhivFolder2)) Then
Set f = fso.CreateFolder(strArhivFolder2)
End If
If not (fso.FolderExists(strArhivFolder3)) Then
Set f = fso.CreateFolder(strArhivFolder3)
End If
If not (fso.FolderExists(strArhivFolder4)) Then
title = "Не получилось"
prompt = "Не удалось создать папку " & filespec & vbLF & _
"Увы, мон шер ..."
response = MsgBox (prompt,vbYesOnly+vbCritical,title)
WScript.Quit
End If

filespec="c:\progra~1\winrar\winrar.exe"
If fso.FileExists(filespec)=vbFalse Then
prompt="Не найден архиватор WinRAR" & vbLf & _
"Увы, мон шер ..."
response=MsgBox(prompt,vbYesOnly+vbCritical,title)
WScript.Quit
End If

UnZip("имя файла")
UnZip("имя файла")
UnZip("имя файла")
UnZip("имя файла")
UnZip("имя файла")


SUB UnZip (file)
strArhivFile = strDisk+"\" & file & ".zip"
strArhivFileC = strArhivFolder4+"\"& file & ".zip"
strArhivFileS = strArxivServer+"\"& file & ".zip"


If not (fso.FileExists(strArhivFile)) Then
'res = MsgBox ("Файл не найден "&strArhivFile,vbYesOnly+vbCritical,"Заголовок")
exit sub
End If

res = MsgBox ("Найден архив: " & strArhivFile & vbLf & vbLf & "Скопировать и извлечь на сервер ?", vbYesNoCancel + vbQuestion,"Вопрос пользователю")
If Res <> vbYes Then
Exit SUB
End If
res = fso.CopyFile (strArhivFile,strArhivFileC)
res = fso.CopyFile (strArhivFile,strArhivFileS)

strBase=strBaseServer & "\"+file
If fso.FolderExists(strBase)=vbFalse Then
Set f=fso.CreateFolder(strBase)
End If

If fso.FolderExists(strBase)=vbFalse Then
title = "Не получилось"
prompt = "Не найдена папка " & strBase & vbLF & _
"Увы, мон шер ..."
response = MsgBox (prompt,vbYesOnly+vbCritical,title)
exit Sub
End If

filespec=strBase & "\*.1CL"
If (fso.FileExists(filespec)) Then
title = "Не получилось"
prompt= _
"База: " & lile & vbLf & _
"Путь: " & strBase & vbLf & _
vbLf & _
"База используется и не может быть извлечана из архива" & vbLf & _
"Попробуйте еще раз когда выйдут из программы"
response = MsgBox (prompt,vbYesOnly+vbCritical,title)
exit Sub
End If

filespec="c:\progra~1\winrar\winrar.exe"
app=filespec & " x -o+ " & strArhivFileC & " " & strBase
response=WshShell.Run(app,1,vbTrue)

If response=0 Then
title = "Информация ok"
prompt = _
"База: " & file & vbLf & _
"Архив: " & strArhivFile & vbLf &_
"Скопирован в " & strArhivFileC & vbLf & _
"Скопирован в " & strArhivFileS & vbLf & _
"База извлечена: " & strBase & vbLf
response = MsgBox (prompt,vbYesOnly+vbInformation,title)
End If

End SUB


в VBS скриптах не силен, помогите модернизировать этот скриптик


Время: 18:07.

Время: 18:07.
© OSzone.net 2001-