![]() |
Считать переменную из файла
Приветствую уважаемый форум и прошу помощи!
Есть скрипт на VBS, делающий архив баз 1С В скрипте как переменная указывается название базы, которую надо заархивировать. Баз стало много и хотелось бы бэкапить их одним скриптом и одним заданием. Видится, что существующий скрипт надо обернуть в цикл, который будет считывать из текстового файла название базы (одна строка - одно название базы), записывать его в некую переменную, которая будет подставляться в нужное место строки архивации и так для всех указанных баз. Поскольку я абсолютный чайник в VBS, очень прошу дать наводку, примеры... Заранее СПАСИБО :-) |
Вариант 1.
Код:
' Cписок баз Вариант 2. Идеология та же, но, по Вашей идее, список баз храним в текстовом файле Код:
SpisNames = "Z:\я16062417.txt" 'Cписок баз Что в текстовом файле Z:\я16062417.txt
Код:
Base1 Вариант 3. И всё-таки я бы предпочел сделать эту работу в cmd - скрипте, ИМХО, надёжнее получится. Но, не зная подробностей Вашего задания, его не привожу. |
Цитата:
Третий вариант не получится - там задача сначала пройтись по всем существующим в кластере 1С соединеным клиентам и выкинуть их из базы В cmd (насколько мне известно) такое не получится А подскажите как ? Цитата:
СКРИПТ
Код:
'имя пользователя базы 1С:Предприятия |
Udar_Nick, Я не уверен, что получится с Вашим конкретным скриптом, но попробуйте вместо моего MsgBox BaseName (или ниже, для отладки) вставить полностью Ваш скрипт. В Вашем скрипте закомментируйте строку (в начале строки поставьте ' ). Случайно у нас имена Вашей переменной и параметра моей процедуры совпали :)
' BaseName = "test_baza" Естественно, в вызывающем модуле пропишите Ваши имена баз, пару штук для начала. |
Udar_Nick, Вот и Вариант 3.
Пишем bat-файл, где вызываем Ваш vbs-скрипт (я обозвал файл с ним ArcBackups.vbs) и в параметре передаём в него имя базы Код:
@Echo On Код:
Set WS_arg=WScript.Arguments ' BaseName = "test_baza" ИМХО, этот вариант должен работать. Если будете настаивать, можно написать в батнике и чтение имён из текстового файла, имхо, это не имеет смысла. |
Цитата:
|
а научите пожалуйста как сделать так, чтобы в случае ошибки в выполнении строки:
Код:
oWshShell.Run strComm, 0, true |
Udar_Nick, «в случае ошибки» — что именно Вы под этим подразумеваете?
|
Цитата:
Код:
C:\Program Files (x86)\1cv8\8.3.4.437\bin\1cv8.exe Хотелось бы, если errorlevel выполнения этой строки не 0 (т.е произошла какая-то ошибка), то сделать файлик error.pid (и записать в него errorlevel например). Нужно для мониторинга Нагиосом в cmd это вот так выглядит: Код:
set RunProgramm = "c:\program.exe param1" |
Код:
Dim lngErrLevel Цитата:
Далее, в одном случае Вы пишете, чтобы файл «создавался», а ниже приводите пример дополнения файла данными (а не создания). |
Цитата:
Большое спасибо за помощь |
А помогите мне, пожалуйста, еще раз в продолжении этой задачи...
Необходимо из определенной сетевой шары \\server\share выбрать самый последний по дате\времени изменения файл с маской *.dt (не рекурсивно) и если его возраст не более N часов, то сделать echo (не MsgBox) "имя файла пробел размер файла пробел дата\время изменения" и выйти с кодом 0, иначе сделать такое же echo, но выйти с кодом 2. В случае если файлов *.dt в папке вообще нет, выйти с кодом 1 помучался денек и понял, что навыков в VBS для этого у меня пока маловато.... Большое спасибо всем откликнувшимся! :-) Апдейт Пока смог накидать как найти самый последний модифицированный файл в папке Код:
Set odFSO = CreateObject("Scripting.FileSystemObject") |
А помогите мне, пожалуйста, еще раз в продолжении этой задачи... -ИМХО, это другая уже тема
Код:
Papka = "\\server\share" Код:
Echo Off |
Цитата:
Большое спасибо Вам за помощь! |
Udar_Nick, неправильно, если запускаете в графическом режиме, то на echo придётся нажать ОК для завершения скрипта, а в пакетном режиме после выдачи echo со всей инфой скрипт не потребует никаких дополнительных действий. Батник написан для иллюстрации того, что всё выдаётся и что errorlevel возвращается как задумано. В норме для работы надо только одна строка с запуском vbs скрипта. Единственное, что не предусмотрел, echo vbs-скрипта вовсе не выдаётся при отсутствии файлов и скрипт завершается без какой-либо выдачи с кодом 1, как Вы и требовали. Пририсовать в последнем if секцию else с echo об отсутствии файлов - нет проблемы.
|
Цитата:
|
Iska, скорее всего Вы правы, в моём случае я имел ввиду, что скрипт зачем-то нужен как какая-то утилита для другого скрипта именно в консоли, чтобы не надо было ничего дополнительно нажимать. Иначе зачем настаивать на echo?
|
Цитата:
Спасибо еще раз, с помощью Вас megaloman и Вас Iska мне таки удалось написать свой скриптик и оно даже уже работает :-) |
Время: 22:16. |
Время: 22:16.
© OSzone.net 2001-