|
BackUp. Скрипт... Где косяк? ₽ |
☑ | ||
|---|---|---|---|---|
|
0
voyjr
07.02.10
✎
18:43
|
На форуме нашел интересный скрипт архивации. Вот он..........
//*************************** '******************************************************* ' File: BackUp1C.vbs ' Author: (c) A.Lopatinskiy "Digital Technologies Ltd" ' '*********************************************************** Const EXE ="""D:\Program Files\1cv77\BIN\1CV7.exe""" '*********************************************************** Const ForWriting = 2 Dim WshShell Dim fso Dim IniFile ErrorMes1="Usage:"_ +vbCrLf+"BackUp1C.vbs <DatabasePath> <ArchivePrefix> <ArchiveDir> <User> <Pass>"_ +vbCrLf+"Where:"_ +vbCrLf+" <DatabasePath> - Path to 1C database directory"_ +vbCrLf+" <ArchivePrefix> - Prefix archive file"_ +vbCrLf+" <ArchiveDir> - Directory for archive file"_ +vbCrLf+" <User> - 1C user name"_ +vbCrLf+" <Pass> - 1C user password" Set WshShell = WScript.CreateObject("WScript.Shell") Set objArgs = WScript.Arguments Set fso = CreateObject("Scripting.FileSystemObject") If objArgs.Count <5 Then MsgBox ErrorMes1,vbOKOnly + vbCritical, "Command line Error!" WScript.Quit 1 else IniFileName=objArgs(1)+"_"+CStr(Year(Now()))+Right("0"+CStr(Month(Now())),2)+Right("0"+CStr(Day(Now())),2)+"_"+CStr(Random())+".prm" ArchFileName=objArgs(1)+"_"+CStr(Year(Now()))+Right("0"+CStr(Month(Now())),2)+Right("0"+CStr(Day(Now())),2)+".zip" ArchDir=objArgs(2) If (Not fso.FolderExists(objArgs(2))) Then Set oFolder = fso.CreateFolder(objArgs(2)) Else Set oFolder = fso.GetFolder(objArgs(2)) End If Set IniFile = fso.OpenTextFile(GetPath&IniFileName, ForWriting , True) IniFile.WriteLine "[General]" IniFile.WriteLine "UnloadData=Y" IniFile.WriteLine "[UnloadData]" IniFile.WriteLine "UnloadToFile="+oFolder+"\"+ArchFileName set IniFile = Nothing End If WshShell.Run EXE & "config" & " /d"&objArgs(0) & " /n"&objArgs(3) &" /p"&objArgs(4) & " /@"&GetPath&IniFileName,, True If (fso.FileExists(GetPath&IniFileName)) Then fso.DeleteFile(GetPath&IniFileName) End If Function GetPath ' Retrieve path to the script file. Dim path path = WScript.ScriptFullName GetPath = Left(path, InStrRev(path, "\")) End Function Function Random() Random=Hex(Year(Now())+Month(Now())+Day(Now())+Hour(Now())+Minute(Now())+Second(Now())) End Function А вот его краткое описание................ Скрипт преднезначен для архивирования информационных баз 1С?Предприятие 7.7 путем выгрузки данных. Внимательно прочитайте это файл до конца! Запуск скрипта: BackUp1C.vbs <DatabasePath> <ArchivePrefix> <ArchiveDir> <User> <Pass> где: <DatabasePath> - путь к каталогу ИБ 1С:Предприятия 7.7 <ArchivePrefix> - префикс файла создаваемого архива <ArchiveDir> - каталог, где будут размещаться резервные копии <User> - имя пользователя 1С, имеющего права на выгрузку данных <Pass> - пароль пользователя 1С, имеющего права на выгрузку данных Все параметры командной строки являются ОБЯЗАТЕЛЬНЫМИ! Скрипт создает резервные копии ИБ 1С:Предприятия 7.7: <ArchiveDir>\<ArchivePrefix>_<Год><Месяц><День>.zip Для корректной работы необходимо подкорректировать строку запуска (путь к исполняемому файлу) 1С:Предприятия: (строка 6: Const EXE ="""C:\Program files\1cv77\bin\1cv7s.exe """) Пример: BackUp1C.vbs E:\MyDB_1 DB_1 X:\Back1C Попов Secret Для автоматического резервирования скрипт с указанными параметрами командной строки следует разместить в планировщике Windows. Есть куча программ, которые архивируют всю папку с базой, а эта именно (как написано) делает выгрузку. То что мне надо. При исполнении скрипта выходит ошибка.........\ Строка:1 Символ:1 Ошибка: Предполагается наличие инструкции Код: 800А0400 Источник: Ошибка компиляции Microsoft VBScript Помогите разобраться. Всё делал как в инструкции написано. Ничего не получается. Нужна как раз выгрузка, а не простое архивирование. Или может кто-нибудь другой скрипт знает? |
|||
|
1
Ковычки
07.02.10
✎
19:15
|
//***************************
|
|||
|
2
ZOMI
07.02.10
✎
19:17
|
(0) Пакетный режим в 1С 77 - миллион обработок в сети
|
|||
|
3
ZOMI
07.02.10
✎
19:18
|
(0) ну а вообще одинэсник обязан уметь руками это писать ... Хотя поколение копипастных не поймет о чем я ...
|
|||
|
4
deskor
07.02.10
✎
19:32
|
А нафига такие навороты?
До выгрузки средствами скуля я юзал такое: [General] Output="D:\log.txt" UnloadData=1 Quit=1 [UnloadData] UnloadToFile="D:\backup\base.zip" IncludeUserDef=1 |
|||
|
5
Torquader
07.02.10
✎
20:04
|
Функции GetPath и Random переносим в начало скрипта, чтобы они были видны.
Потом, везде, где строки соединяются при помощи & должны стоять пробелы. То есть GetPath&IniFileName не всегда может сработать. Тоже касается пробелов перед переносом строки (_), без него не все интерпретаторы понимают, что надо сделать. Кроме того, функция GetPath - написана неправильно - она выделяет строку до первого разделителя, то есть получает корень диска (а надо, видимо, что-то другое). Function GetPath ' Retrieve path to the script file. GetPath = Left(WScript.ScriptFullName, InStrRev(WScript.ScriptFullName,WScript.ScriptName)) End Function |
|||
|
6
Torquader
07.02.10
✎
20:05
|
+(.)
Кроме того, надеюсь, что //************************************** Это не в первой строке файла (так коментарий // работает только в JavaScript). |
|||
|
7
voyjr
07.02.10
✎
20:14
|
Спасибо огромное(1). Оказалось всё так просто!!!
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |