|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - +VBS: копирование файлов с сервера в папку установки проги |
|
|
CMD/BAT - +VBS: копирование файлов с сервера в папку установки проги
|
Новый участник Сообщения: 20 |
Профиль | Отправить PM | Цитировать Такая ситуация: в автокад были добавлены некоторые шаблоны (то есть файлы .dwg), которые содержали официальное короткое название нашей организации, сейчас пришло указание сменить официальное короткое название организации и во всех шаблонах в автокаде соответственно поменять это название. Все автокады (2004, 2007, 2008) ставятся с серверов, там есть их развертки. В развертках я все поменяла, теперь получается, что у всех пользователей, у кого автокады были поставлены раньше (это окоо 150 пользователей), старые шаблоны, то есть необходимо их подменить на новые с новым названием, можно конечно ручками ходить по кабинетам и копировать новые файлы с шаблонами, но это долго и нехорошо. Поэтому надо написать такой скрипт, который будет копировать эти файлы с сервера туда, где лежат такие же (только старые) у пользователя на компе. Проблема еще в том, что системные пути разные, то есть у кого-то это Programs, у кого-то Program Files, так же у кого-то Documents, у кого-то Documents and Settings. У меня опыт написания скриптов почти нулевой, но на сколько я знаю, cmd файлы не работают с unc путями, а как задавать системные папки в vbs я никак не могу найти, и как вообще получить путь, где стоит автокад и соответственно лежат шаблоны?
|
|
Отправлено: 07:56, 04-04-2008 |
Сообщения: 53146
|
Профиль | Отправить PM | Цитировать Цитата la_vanille_ciel:
У вас в организации сеть с доменом? |
|
Отправлено: 11:22, 08-04-2008 | #21 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 20
|
Профиль | Отправить PM | Цитировать а еще как проверить, существует такая ветка или нет, а то надо один скрипт только.....
|
Отправлено: 12:06, 08-04-2008 | #22 |
Сообщения: 53146
|
Профиль | Отправить PM | Цитировать Цитата la_vanille_ciel:
Первая строчка On Error Resume Next означает, что мы берем на себя контроль ошибок. Дальше: Если раздел реестра (или параметр в нем) не существует, RegRead не выполняется (из-за ошибки) и значение переменной P остается равным предыдущему "". В этом случае FSO.FolderExists(P) возвращает False (и если папка не существует, тоже). Таким образом, для разных версий автокада достаточно размножить эти фрагменты: |
|
Отправлено: 13:06, 08-04-2008 | #23 |
Новый участник Сообщения: 20
|
Профиль | Отправить PM | Цитировать Да, я так и сделала! То есть один файл vbs, в котором эти строки размножены для всех автокадов...НО проблема в том, что там все автокады собраны, а у пользователя может стоит два из них или три, например, 4й и 7й...и когда скрипт доходит до ветки реестра, например, 5го автокада, он пишет, что не найден путь (ну его же нет на самом деле) и все ...типа ошибка, а дальше не пойму, он же после ошибки дальше не будет выполняться, так? Вот типа надо проверять наличие ветки до ее чтения....
Я написала RegExists и оно конечно не работает, потому что не знаю какой метод надо... |
Отправлено: 19:03, 08-04-2008 | #24 |
Сообщения: 53146
|
Профиль | Отправить PM | Цитировать Цитата la_vanille_ciel:
Цитата Petya V4sechkin:
После On Error Resume Next никаких сообщений об ошибках не будет, при ошибке выполнение скрипта продолжится со следующей команды. |
||
Отправлено: 21:31, 08-04-2008 | #25 |
Новый участник Сообщения: 20
|
Профиль | Отправить PM | Цитировать Я понимаю, но у меня не принимают, требует, чтобы не было этой строки и чтобы перед чтением проверялось, есть ли такая ветка....
а если настаивать на On Error Resume Next, то вот например, дошел скрипт до 4го автокада, ветка есть, у пользователя стоит, далее идет до пятого, такого у него нет, ошибки не выдастся, но пойдет он дальше до 6го 7го 8го?? А еще можно спросить, P="" это для обнуления какого-то? |
Отправлено: 05:53, 09-04-2008 | #26 |
Новый участник Сообщения: 20
|
Профиль | Отправить PM | Цитировать Уже вроде принимают и так, но теперь надо вывести значение PP1 в сообщение (эхо что ли.. ) в коде:
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 |
Отправлено: 08:35, 09-04-2008 | #27 |
Новый участник Сообщения: 20
|
Профиль | Отправить PM | Цитировать Все отлично, все работает
|
Отправлено: 11:53, 09-04-2008 | #28 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Как сделать через ГП автоматическое копирование библиотек в папку system32 ? | zegerman | Автоматическая установка приложений | 7 | 01-12-2009 16:15 | |
[решено] SVN, как добавить папку в svn-репозиторий без вложенных в папку файлов? | pingUIN | Хочу все знать | 1 | 03-11-2009 17:16 | |
Как организовать избирательное копирование в расшаренную папку? | MikeGl | Microsoft Windows NT/2000/2003 | 3 | 19-11-2008 00:31 | |
Копирование исходящей почты в Общую папку | Loki3D | Microsoft Exchange Server | 0 | 01-10-2007 18:11 | |
Копирование файлов с сервера | Alexeus | Microsoft Windows NT/2000/2003 | 7 | 19-05-2004 15:31 |
|