PDA

Показать полную графическую версию : +VBS: копирование файлов с сервера в папку установки проги


Страниц : 1 [2]

Petya V4sechkin
08-04-2008, 11:22
теперь оказывается, надо еще этот скрипт в автозагрузку сделать...
А в чем проблема?
У вас в организации сеть с доменом?

la_vanille_ciel
08-04-2008, 12:06
а еще как проверить, существует такая ветка или нет, а то надо один скрипт только.....

Petya V4sechkin
08-04-2008, 13:06
а еще как проверить, существует такая ветка или нет
Я предлагал вариант в 11-м посту.
Первая строчка On Error Resume Next означает, что мы берем на себя контроль ошибок.

Дальше:
P = ""
P = WSh.RegRead( ...
If FSO.FolderExists(P) Then ...

Если раздел реестра (или параметр в нем) не существует, RegRead не выполняется (из-за ошибки) и значение переменной P остается равным предыдущему "". В этом случае FSO.FolderExists(P) возвращает False (и если папка не существует, тоже).

Таким образом, для разных версий автокада достаточно размножить эти фрагменты:
P = ""
P = WSh.RegRead( ...
If FSO.FolderExists(P) Then ...

P = ""
P = WSh.RegRead( ...
If FSO.FolderExists(P) Then ...

(и т. д.).

la_vanille_ciel
08-04-2008, 19:03
Да, я так и сделала! То есть один файл vbs, в котором эти строки размножены для всех автокадов...НО проблема в том, что там все автокады собраны, а у пользователя может стоит два из них или три, например, 4й и 7й...и когда скрипт доходит до ветки реестра, например, 5го автокада, он пишет, что не найден путь (ну его же нет на самом деле) и все ...типа ошибка, а дальше не пойму, он же после ошибки дальше не будет выполняться, так? Вот типа надо проверять наличие ветки до ее чтения.... :dont-know :help:

Я написала RegExists :biggrin: и оно конечно не работает, потому что не знаю какой метод надо... :(

Petya V4sechkin
08-04-2008, 21:31
он пишет, что не найден путь
Первая строчка On Error Resume Next означает, что мы берем на себя контроль ошибок.
Еще раз.
После On Error Resume Next никаких сообщений об ошибках не будет, при ошибке выполнение скрипта продолжится со следующей команды.

la_vanille_ciel
09-04-2008, 05:53
Я понимаю, но у меня не принимают, требует, чтобы не было этой строки и чтобы перед чтением проверялось, есть ли такая ветка.... :cry:
а если настаивать на On Error Resume Next, то вот например, дошел скрипт до 4го автокада, ветка есть, у пользователя стоит, далее идет до пятого, такого у него нет, ошибки не выдастся, но пойдет он дальше до 6го 7го 8го??
А еще можно спросить, P="" это для обнуления какого-то?

la_vanille_ciel
09-04-2008, 08:35
Уже вроде принимают и так, но теперь надо вывести значение PP1 в сообщение (эхо что ли.. :dont-know ) в коде:

On Error Resume Next
Dim WSh, FSO, P, P1, P2, P3, P4

Set WSh = WScript.CreateObject("WScript.Shell")
Set FSO = WScript.CreateObject("Scripting.FileSystemObject")


P = WSh.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\R16.0\ACAD-201:419\AcadLocation")
PP = P & "\Graph\Support"
If FSO.FolderExists(PP) Then FSO.CopyFolder "\\Uzdp-files\share_shell\New_Stamps_CAD\NewShortName2004", PP, True


P1 = WSh.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\R16.1\ACAD-301:419")
PP1 = P1 & "\Graph\Support"
If FSO.FolderExists(PP1) Then FSO.CopyFolder "\\Uzdp-files\share_shell\New_Stamps_CAD\NewShortName", PP1, True


P2 = WSh.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\R16.2\ACAD-4001:419")
PP2 = P2 & "\Graph\Support"
If FSO.FolderExists(PP2) Then FSO.CopyFolder "\\Uzdp-files\share_shell\New_Stamps_CAD\NewShortName", PP2, True


P3 = WSh.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\R17.0\ACAD-5000:419\AcadLocation")
PP3 = P3 & "\Graph\Support"
If FSO.FolderExists(PP3) Then FSO.CopyFolder "\\Uzdp-files\share_shell\New_Stamps_CAD\NewShortName", PP3, True


P4 = WSh.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\R17.1\ACAD-6000:419\AcadLocation")
PP4 = P4 & "\Graph\Support"
If FSO.FolderExists(PP4) Then FSO.CopyFolder "\\Uzdp-files\share_shell\New_Stamps_CAD\NewShortName", PP4, True

:help:

la_vanille_ciel
09-04-2008, 11:53
:) Все отлично, все работает =)




© OSzone.net 2001-2012