Поделитесь батником ПЛЗ! #113151


#0 by Xander
я в этом деле новичок. есть батник но он не работает( хочется посмотреть на ваши и думаю воспользоваться им)
#1 by bazvan
Прибей его гвоздиком как та девочка. Тебе "наши" какие нравятся??? Розовенькие или голубенькие???
#2 by Кортес
@echo off
#3 by Xander
я в этом деле не мостак я уже замучался со своим первым батником) НЕ РА БО ТА ЕТ
#4 by Xander
ха ха я имел ввиду архивацию базы данных !С с помощью winrar!
#5 by bazvan
>я в этом деле не мостак >я уже замучался со своим первым батником ТАк я же те говорю прибей его гвоздиком все заработает. БУш ходить и улыбатся
#6 by Кортес
#7 by Xander
спасибо за ссылку, но подобное можно сделать и своими руками на скрипте Backup.vbs  к примеру я только что такой сделал я б хотел винраром плз кто знает
#8 by Xander
К примеру это выгрузка: -------------------------------------------------------- Set b = CreateObject("V7Backup.InfBase") b.DebugLogPath = "C:V7BackupV7Backup.log" ' 01Бухгалтерия b.V7Path  = "E:Program Files1Cv77BIN1cv7.exe" b.UserName = "" b.Password = "" b.BackupDir = "C:V7BackupArc" b.AddBackupDir = "C:V7BackupAddArc" b.DBDir = "E:Program Files1Cv77Бухгалтерия" b.ArcNamePrefix = "Бухгалтерия" b.ArcNamePostfix = "" b.ZIPPassword  = "" b.Params = _ "[General]" & vbCrLf & _ " UnloadData = 1" b.DoBackup Set b = Nothing ------------------------------------------------------------ можно и сохранение)
#9 by Кортес
Я бы многого хотела: вслух читать и в мяч играть я бы песенку пропела я б могла похохотать...
#11 by smaharbA
Для ДБФ, забрасываешь в каталог базы или указываешь как параметр путь к базе архивирует "находу"
#12 by Кортес
хамить не надо, ладно?
#13 by DeiMos
ОФФ: вопрос к знатокам режима командной строки RAR Аутсайдер06.06.2003 - 20:41    ..или к тем, кто умеет внимательно читать документацию.Нужно при архивировании базы 1С пропускать файлы из каталога NEW_STRU. У меня никак не получается (могу только исключать файлы по маске).Вот пример моего камандного файла:"C:Program FilesWinRARRar.exe" a -r -x*.CDX -ep1 -agddmmyy D:_BACKUPazaaza Z:1c77aza*.*Конечно данный каталог можно просто удалять, но это постоянно забывается и архивы получаются на несколько мегов больше. Поскольку мне часто базу приходится носить домой, а флешка у меня не резиновая - данный вопрос стал актуален (+ чисто спортивный интерес).Хочу сделать средствами ТОЛЬКО архиватора RAR, но не знаю возможно ли это вообще. Доку читал, но без толку.. VicAlex1 - 06.06.2003 - 20:59    дай мыло.Вышлю тебе bat-файл, абсолютно тупой, но сколько клиентам ни ставил, работает безотказно. Michael2 - 06.06.2003 - 21:01    так здесь его опубликуйВсем интерестно. solin3 - 06.06.2003 - 21:22    ogb#bk.ru - высылай батник, посмотрим VicAlex4 - 06.06.2003 - 21:43    Пожалуйста, всего две строчки и все проблемы решены.CD "Program Files"WinRARWinRAR.exe a -agDD.MM.YY.HH-MM-SS d:Arhive ame d:Basic*.*Мои скромные комментарии:- первая строчка определяет где находится программа WinRar, почему в кавычках? Это связано с ограничением 8.3 Если напишите типа progra~1, то можно без кавычек.- вторая строчка означает, что все файлы из папки Basic архивируются с фиксацией времени в папку Arhive в виде файлов с именем "name"Впрочем, никто не мешает управлять какие именно файлы надо архивировать.Я лично себе голову не ломаю, а целиком всё базу.Да, забыл сказать, все это записываешь в Блокнот с расширением .bat и включаешь в планировщик. Конечно, интерфейса никакого, но надёжно. Angel IL5 - 06.06.2003 - 21:55    чем pkzip25 то не устраивает? мало того что совместим полностью со штатными средствами так еще и по шустрее на полтора-пару процента :) SmallDog6 - 06.06.2003 - 21:58    "C:Program FilesWinRARWinRAR.EXE" a -r -rr -s -x*.cdx -x*.tmp -x*.log -x*.mlg -x. ew_stru*.* gupoz--всё оччень просто selena7 - 06.06.2003 - 22:10    @echo onset SYS=1CDBset TGT=C:USRBACKUPSSET DST=%TGT%%SYS%_%1%.zipSET SRC=C:%SYS%*.*DEL %DST% > NULcall c:usrlibsoundstop.batnet stop server /yc:c:usrlibarcpkzip -r -p %DST% %SRC%net start servernet start browsercall c:usrlibsoundstart.bat--модификаций много батника , через at например VicAlex8 - 06.06.2003 - 22:16     А вот по ZIPу я не знаю, приведи пример конкретно. Мне это очень интересно. snc9 - 06.06.2003 - 22:18     Можно указать все каталоги (я думаю их не много):текущий каталог базы *.* - сдесь без вложенных директорийEXTFORMS*.*и другие если есть. VicAlex10 - 06.06.2003 - 22:22    Ангел, давай колись, конкретно как в ZIPе сделать. VicAlex11 - 06.06.2003 - 22:45    Ангел, спать что-ли лёг? Никто тебя за язык не дергал. Angel IL12 - 06.06.2003 - 23:17    backup.cmd-----------@Echo offd:cd d:ackupuh40::-- Установка путей ----------------------SET ArhTo=s:ackupuh40SET ArhToCC=d:arhackupuh40SET ArhFrom=m:::-----------------------------------------FOR /F " " %%i in ('cd') do set CurDir=%%iFOR /F "tokens=1-2 delims=" %%i in ('echo %ArhFrom%') do set CurDrive=%%i%CurDrive%cd %ArhFrom%FOR /F "tokens=2-4 delims=. " %%i in ('date /t') do set DateArh=%%k%%j%%iFOR /F "tokens=2-4 delims=. " %%i in ('date /t') do set CurDate=%%i.%%j.%%kFOR /F "tokens=1-2 delims=: " %%i in ('time /t') do set CurMin=%%jFOR /F "tokens=1-2 delims=: " %%i in ('time /t') do set CurHr=%%iIf /I %CurHr% LSS 10 (set CurHr=0%CurHr%)Set CurTime=%CurHr%:%CurMin%Set TimeArh=%CurHr%_%CurMin%echo "================================================" >>%CurDir%uckup.logecho "---------------------" >>%CurDir%uckup.logecho %CurDate% %CurTime% "Попытка архивации" >>%CurDir%uckup.logif exist %ArhFrom%SYSLOGlinks.tmp goto Failedpkzip25 -add -rec -attr=all -excl=@%CurDir%excl.txt -path=cur -temp=c: emp %ArhTo%%DateArh%-%TimeArh% @%CurDir%incl.txt >nulpkzip25 -add -rec -attr=all -excl=@%CurDir%excl.txt -path=cur -temp=c: emp %ArhToCC%%DateArh%-%TimeArh% @%CurDir%incl.txt >nulcd %CurDir%echo %CurDate% %CurTime% "Архивация выполнена" >>%CurDir%uckup.loggoto end:Failedecho %CurDate% %CurTime% Архивация провалена >>%CurDir%uckup.logecho "---------------------" >>%CurDir%uckup.logtype %ArhFrom%SYSLOGlinks.tmp>>%CurDir%uckup.logecho "">>%CurDir%uckup.log:endecho "---------------------" >>%CurDir%uckup.log Angel IL13 - 06.06.2003 - 23:19    incl.txt----------m:*.dbfm:1cv7.*m:usrdefusers.usrexcl.txt----------m:NEW_STRU*.*m:SYSLOG*.*m:extforms*.* SmallDog14 - 06.06.2003 - 23:24    шестой постинг решает проблему сабжа однозначно!!!!если ярлык запускается из каталога БАЗЫ! Angel IL15 - 06.06.2003 - 23:29    A 12-13 решают проблемму при запуске откуда угодно :)архив получается вида 20020606_1240.zip SmallDog16 - 06.06.2003 - 23:46    насчет ты загнул....а однозначно прощеа экстформс и дома для правки бывает нужно.... (см. пост 13) Angel IL17 - 06.06.2003 - 23:55    Нормальный скриптец я его года 3 назад под НТю нарисовал теперь им пакую 3 раза в день...просто убери m:extforms*.* из списка исключений SmallDog18 - 07.06.2003 - 00:14    а адназначно проще Аутсайдер19 - 09.06.2003 - 09:37    Кажется я понял почему у меня самого ничего не работало. Надо было делать текущим каталог с базой или указывать полный путь к .NEW_STRU.Всем спасибо.
#14 by DeiMos
Регулярно выполнять резервное архивирование нужно обязательно, чтобы не было потом обидно за безвозвратно утерянные данные. Чем это делать - это вопрос скорее вкуса. Существует например специально "заточенная" под 1С программа "Хранитель" от ростовской фирмы "Гендальф" /, которая умеет делать массу полезных вещей, но мне она кажется слишком перегруженной для таких простых целей, я пользуюсь старым добрым RAR'ом. Архивировать следует только файлы базы *.dbf и сами метаданные (1cv7.dd/md), ну еще LOG-файл и ваши оригинальные файлы (если они есть). Сначала приведу содержимое нескольких командных файлов (расширение *.cmd работает только под Win NT, если используется Win'9X, то расширение должно быть *.bat): ARCH.CMD REM используемые каталоги (должны существовать) REM D:1CDB - рабочая база REM C:TempDB - временная копия базы REM C:BACKUP - архив базы REM \AdmStorage - резервный архив базы (на другом компьютере сети) @echo off ; чистим временный каталог Del С:TempDB*.* ; копируем в него архивируемые файлы рабочей базы (*.md,*.dd,*.log,*dbf) Copy D:1СDB1cv7* С:TempDB Copy D:1CDB*.dbf C:TempDB ; сохраняем предыдущую версию архива под новым именем copy C:BACKUPdb.rar C:BACKUPdb0.rar ; создаем новый архив rar.exe u -r -m1 -dh -std C:BACKUPdb.rar С:TempDB*.* if errorlevel 0 goto rpl echo P_A_C_K_I_N_G___E_R_R_O_R__! goto end :rpl ; сохраняем копию архива в надежном месте net use Z: \AdmStorage copy C:BACKUP*.rar Z: net use Z: /delete :end Выполнять сию процедуру можно не прерывая производственного процесса (никого из базы выгонять не надо), именно для этого мы архивируем не саму базу, а ее временную копию. На этом все, осталось всего-навсего запустить системную службу Sсhedule: Explorer-ControlPanel-Services-Schedule-Startup-Automatic (поддерживается только под Win NT, для Win'9X нужны специальные внешние утилиты) и набрать из командной строки что-нибудь аналогичное : At 13:00 /Every:M,T,W,Th,F C:COMMANDarch.cmd At 18:00 /Every:M,T,W,Th,F C:COMMANDarch.cmd At 07:00 /Every:M,T,W,Th,F C:COMMANDshutdown /l /r /y /c и все - мы имеем два раза в день автоматическое архивирование нашей базы, ежедневно - с понедельника по пятницу. По-моему просто и самодостаточно. Как часто нужно делать архивы - это зависит от интенсивности документооборота в вашей организации, я делаю два раза в день, т.ч. если что, то придется восстанавливать документы максимум за полдня (тьфу-тьфу): Теперь о третьей строке в команде AT - в плане автоматизации рутинных действий я пошел еще дальше, как я уже упоминал у меня каждую ночь производится реиндексация базы, для этого используется такой командный файл : REINDEX.CMD @echo off ; каталог базы set db=D:1СDB ; каталог программы set pr="C:Program Files1cv75in1cv7" ; принудительно сносим индексы del %db%*.cdx /Q ; запускаем программу монопольно под "фиктивным" пользователем %pr% enterprise /D%db% /M /NЧистяков /Pstart Этот командный файл вставляется в папку автозагрузки на сервере, утилита SHUTDOWN.EXE (из Windows NT Resource Kit - это набор дополнительных сервисных утилит) производит перезагрузку сервера, для того чтобы по загрузке не нажимать магическую комбинацию из трех пальцев (Ctrl-Alt-Del) и не вводить пароль, а загрузить сервер автоматически, нужно подправить системный реестр NT (запустить из командной строки regedit.exe) : [HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogon] "DefaultUserName"="YourProfileName" "DefaultDomainName"="Comp" "AutoAdminLogon"="1" "DefaultPassword"="YourPass" где YourProfileName - имя профиля администратора на сервере (по умолчанию Administrator), Comp - сетевое имя сервера, YourPass - пароль администратора на сервере (обязательно должен быть не пустым). Итак подытожим - в заданное нами время происходит автоматическая перезагрузка сервера с переиндексацией базы, для того чтобы программа по окончании переиндексации сама завершилась необходимо в глобальном модуле конфигурации предусмотреть некие нестандартные действия по обработке входа в программу искусственного "фиктивного" пользователя (Чистяков - без пароля) - они приведены в демонстрационной конфигурации (архив Adm.rar). В принципе никто не запрещает пойти еще дальше - и наряду с переиндексацией базы по ночам выполнять любые желаемые действия, например групповое перепроведение документов для восстановления границы последовательности или формирование "тяжеловесных" отчетов, с последующим сохранением их результатов в *.mxl файлах, рассылки прайсов по факсу или e-mail'у и т.д. Все ограничивается только вашей фантазией.
#15 by DeiMos
архивации 1с hol26.07.2004 - 06:56    Есть такая проблема надо автоматизировать архивации баз 1с 7.7 (Базы порядка 6,5 Гб). Базы храняться на сервере Novell 5. Может кто подскажет какую программу надо использовать для субжа! Заранее спасибо за ответ BOPOH1 - 26.07.2004 - 07:03    А бат файлы тебя не устраивают? hol2 - 26.07.2004 - 07:08    Нет хочется что программа смотрела изменились ли данные и архивировала только их. OFF3 - 26.07.2004 - 07:18    Не поверешь, но это мона организвать и из него :-) hol4 - 26.07.2004 - 07:44    В принципе поверю но кто даст мне такай батник :-) Karlik5 - 26.07.2004 - 07:46    Напиши сам, это не сложно, я при моей тупости разобрался за пару дней. Kolan746 - 26.07.2004 - 08:18    Создай файл с расширением *.js, В планировщике укажи выполнять его по расписанию// Установка переменных// Каталог архивов (куда вся эта хрень будет складываться). ДОЛЖЕН СУЩЕСТВОВАТЬ !!!!!var ArhPATH="C:\Archive_1C\E_day";// Каталог базы 1Сvar Folder1C="C:\Reliz460";// расширения файлов   var ex1="*.dbf"; var ex2="*.md"; var ex3="";////////////////////////////////////////////////////////////////////////////var WSHShell = WScript.CreateObject("WScript.Shell");var fso = new ActiveXObject("Scripting.FileSystemObject");var n1=ArhPATH+"\"+arhfolder;if (!fso.FolderExists(n1))  var Folder = fso.CreateFolder(n1);RunRAR(arhfolder,arhname);function arhname {    var d=new Date;    var m=d.getMonth+1;    var q=d.getDate+"_"+m+"_"+d.getYear;// WSHShell.PopUp(q);    return q}function arhfolder {    var d=new Date;    var m=d.getMonth+1;    return m+"_"+d.getYear;}function RunRAR(fold, nam) {strRun="winrar a "+ArhPATH+"\"+arhfolder+"\"+arhname+" ";if (!ex1=="")strRun=strRun+Folder1C+"\"+ex1;if (!ex2=="")strRun=strRun+" "+Folder1C+"\"+ex2;if (!ex3=="")strRun=strRun+" "+Folder1C+"\"+ex3;WSHShell.Run(strRun,5);} hol7 - 26.07.2004 - 08:40    Извеняюсь за глупый вопрос А этот скрипт будет проверять изменились данные или нет? Kolan748 - 26.07.2004 - 09:11    Этот нет. Как вариант могу предложить следующее.В глобальном модуле в процедуре ПриЗавершенииРаботыСистемы создавать пустой файл в каталоге БД (GoRar.txt). А в скрипте смотреть если файл имеется, то паковать базу.if (fso.FileExists(Folder1C+"\GoRar.txt"))    return;А затем удалять его:fso.DeleteFile("Folder1C+"\GoRar.txt", true); hol9 - 26.07.2004 - 09:17    Блин а вот еще вопрос если в одном каталоге куча баз 1с ( штук 100) а в скрепте как я понял только один католог одна база или нет? Tarlich10 - 26.07.2004 - 09:25    Очень нравится прога BU32 плюсов валом SiAl11 - 26.07.2004 - 09:26    Как вариант: любой архиватор может рабоать с атрибутом архивный (что это такой и как он облегчает жизнь объяснять наверно не нужно). ДАК12 - 26.07.2004 - 09:30    А еще есть программа "Хранитель". В ней даже есть галочка "Архивировать если изменились данные" hol13 - 26.07.2004 - 10:11    Ребята будьте любезны скинте ссылки на (Хранитель и BU32) мыло incoming2004#mail*ru Kolan7414 - 26.07.2004 - 10:12    Как это в одном каталоге может быть куча баз? Для каждой базы запускай свой скрипт (Ctrl+C, New file, Ctrl+V, поправляем пути к базе). Где ваша фантазия ?Этот скрипт работает с установленым WinRar-ом. Запускает его с ключом "а". (10,11,12)Настоящий прог-ст испытывает удовольствие от написания своих прог (в данном случае скрипта), а не от юзанья других. А в наше время Java или VBasic Script должен знать каждый считающий себя прогом. А кусок что я привел выше это WHS - в определенных случаях может творить чудеса. ...случаи бывают разные... и не для всех кем-то уже написаны проги... Вообще-то я на VC++ 6.0 пишу (там все намного веселее чем в 1С :) hol15 - 26.07.2004 - 10:17    Kolan74 Не сердись :-) я же не программер а простой пользователь 1с Kolan7416 - 26.07.2004 - 10:22    Так бы сразу и сказал, а то я распинаюсь тут...А это по теме о невозможном:Говорят, что смертельная доза алкоголя - 2 литра водки. Говорят, чтобольше выпить невозможно. Невозможно - это всего лишь громкое слово закоторым прячутся маленькие люди, им проще жить в привычном мире, чемнайти в себе силы его изменить. Невозможно -это не факт, это толькомнение. Невозможно -это не приговор. Это вызов. Невозможно - это шансповерить в себя. Невозможно-это не навсегда. Невозможное возможно.Поверь в себя! Tarlich17 - 26.07.2004 - 13:05    смотри мыло Tarlich18 - 26.07.2004 - 13:08    Bu32 прикольно тем что настраиваеш маску , исключение , ставиш сколько последних копий хранить в папке ,и конечно же что делать до и после архивированияГендальф тоже прикольная вещь была актуальна когда места маловато было
#16 by DeiMos
Могу порекомендовать воспользоваться способом с использованием команды «AT» и внешнего архиватора. Я использую WinRar 2.71 или выше. Принцип работы - очень простой. С помощью команды «AT», которая предназначена для запуска команд по расписанию, ставим, скажем, на час ночи ежедневно выполнять командный файл, в котором запишем все необходимые процедуры. Синтаксис команды «AT»: Команда «AT» предназначена для запуска команд и программ в указанное время по определенным дням. Для использования команды «AT» необходимо, чтобы была запущена служба расписаний. AT [\имя_компьютера] [ [код] [/DELETE] | /DELETE [/YES]] AT [\имя_компьютера] время [/INTERACTIVE] [ /EVERY:день[,...] | /NEXT:день[,...]] "команда" \имя_компьютера - Имя удаленного компьютера. Если этот параметр опущен, используется локальный компьютер. код - Порядковый номер запланированной задачи. /delete - Отмена запланированной задачи. Если код задачи опущен, отменяются все задачи, запланированные для указанного компьютера. /yes - Отмена запроса на подтверждение при отмене всех запланированных задач. время - Время запуска команды. /interactive - Разрешение взаимодействия задачи с пользователем, работающим на компьютере во время запуска задачи. /every:день[,...] - Запуск задачи осуществляется по указанным дням недели или месяца. Если дата опущена, используется текущий день месяца. /next:день[,...] - Задача будет запущена в следующий указанный день недели (например в следующий четверг). Если дата опущена, используется текущий день месяца. "команда" - Команда Windows NT или имя пакетного файла. Предположим, у нас есть база, которая имеет путь D:BasesMain, сам Winrar находится у нас в E:Arh, а архив мы хотим поместить сюда: E:ArhMain. Вот пример коммандного файла для такого случая (для удобства рассмотрения строки файла подсвечены): @Echo Off Тут все понятно - просто отключаю вывод сообщений на консоль. tskill *1c* /a /v У меня работает служба терминалов. И иногда пользователи уходят домой, оставляя свои сеансы либо открытыми, либо отключенными. Для того, чтобы закрыть эти сеансы (точнее не сеансы - а саму программу 1С-Предприятие), используется команда tskill. Синтаксис ее такой (наберите tskill /? для того, чтобы прочитать справку): TSKILL processid | processname [/SERVER:servername] [/ID:sessionid | /A] [/V] processid - ID прекращаемого процесса. processname - Имя прекращаемого процесса. /SERVER:servername - Сервер для этого процесса (по умолчанию текущий). Должны быть указаны /ID или /A при использовании имени процесса и параметра /SERVER. /ID:sessionid - Прекратить процесс, выполняемый в указанном сеансе. /A - Прекратить процесс, выполняемый во ВСЕХ (ALL) сеансах. /V - Отображает информацию о выполненных действиях. Ладно, идем дальше. e: cdArh Тут все понятно - переключение на диск E и переход в каталог, где лежит архиватор. winrar a -dh -ep1 -ibck -m3 -md1024 -s -r -y -x@not.lst -agYYYY-MM-DD-HHMMSS E:ArhMainMain D:BasesMain*.* Рассмотрим эту строчку подробно: a - это собственно и есть команда архивации. -dh - совместное открытие общих файлов. -ep1 - исключить базовую папку из пути. -ibck - запустить как фоновый процесс в системном трее. -m3 - выбрать метод сжатия. 1-минимальный, 5-максимальный. В моем случае 3-средний. -md1024 - выбрать размер словаря 1024 килобайт. -s - создать непрерывный архив. -r - обойти рекурсивно вложенные папки. -y - отвечать «Да» на все вопросы (ну, типа: «За пивом сбегать?»). -x@not.lst - не обрабатывать файлы, указанные в файле-списке. Файл-список должен находится в том же каталоге, что и архиватор. В моем случае имя файла списка not.lst. В моем случае там написано: *.cdx *.lck *.tmp. -agYYYY-MM-DD-HHMMSS - добавить к имени архива текущую дату и время. Строка YYYY-MM-DD-HHMMSS выбирает формат. E:ArhMainMain - Путь к архивному файлу и имя файла. D:BasesMain*.* - Путь к архивируемым файлам.В результате выполнения мы получим архивный файл такого типа Main2002-03-28-010000.rar Вот, собственно, и все. Отзывы и замечания просьба присылать по адресу. 2 способ: (От ghost) Копирую FAR-ом с установленным флагом "Копировать файлы, открытые для записи".Естественно только ДБФ-файлы. Вообще-то ссылочная целостность базы при этом не гарантирована, но после тестирования-исправления все нормально.Пропадает небольшая часть последних доков или элементов справочников. Можно поступить иначе - в обработке пользователям рассылается сообщение "Через некоторое время начнется резервное копирование.В течении 3-5 минут документы проводится не будут".После этого блокируешь базу транзакцией.Копируешь.Фиксируешь транзакцию.Во время транзакции пользователи могут набирать документы и запускать отчеты.Это более надежный и правильный вариант.На SQL при BacUp-е тормоза тоже включаются такие, что минут 10 работать нормально невозможно.Время блокировки конечно зависит от объема базы.У меня база 2 гига (без CDX) копируется от 3 до 5 минут в зависимость от загрузки сервака. Сервер 2xPIV XEON 2.8 4096Мгб ОЗУ RAID 10 (4xSeagate Cheetah 18.1 Gb 15000 rpm)
#17 by Ёпрст
Тут тоже есть:
#18 by romix
x-romix.narod.ru скрипт для архивации баз на движке 1С. Умеет корректно архивировать при работающих пользователях (докопирует измененные файлы).
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С