![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#1
|
|
![]() Администратор ![]() ![]() ![]() ![]() ![]() Группа: Главные администраторы Сообщений: 14349 Регистрация: 12.10.2007 Из: Twilight Zone Пользователь №: 1 ![]() |
Итак, рассмотрим классическую ситуацию. Имеется терминальный сервер, например на базе Win2000/Win2k3 и несколько баз 1С 7.7 (положим что все базы хранятся в папке D:\Bases_1C в своих подпапках). Необходимо организовать резервное копирование этих баз + автоматическую регистрацию всех баз в списке 1С при входе пользователя в систему. Т.е. например, чтобы при создании нового пользователя, когда он входит в систему у него уже был весь необходимый для работы список баз, и даже если он что-то случайно удалит, то, чтобы при следующем входе в систему список баз восстанавливался у него автоматически. Для реализации этих нехитрых задач напишем несколько пакетных сценариев. Предположим, что у нас установлен WinRar 4.x, и на диске D:\ создана папка Backups, которая собственно и будет использоваться для хранения наших резервных копий. В папке Backups создаем файл arc.cmd следующего содержания:
Код @ECHO OFF SET PREFIX=%1 SET BAZA=%2 SET FOLDER=%DATE% cd D:\Backups mkdir "%FOLDER%" cd "%FOLDER%" del /F /Q %PREFIX%.RAR del /F /Q %PREFIX%.LOG ECHO Begin: %DATE% %TIME% > %PREFIX%.LOG "C:\Program Files\WinRar\WINRAR.EXE" a -m5 -ep1 -dh -r -k -x*.cdx -ilog%PREFIX%.LOG -inul %PREFIX%.RAR D:\Bases_1C\%BAZA%\*.* ECHO. >> %PREFIX%.LOG ECHO. >> %PREFIX%.LOG ECHO End: %DATE% %TIME% >> %PREFIX%.LOG cd D:\Backups У этого сценария два входящих параметра, PREFIX - префикс создаваемого архива и BAZA - имя папки базы (относительный путь) в D:\Bases_1C. Т.о. если например у нас в D:\Bases_1C\1SBDB лежит наша база бухгалтерии, то при запуске arc.cmd BUH 1SBDB папка с нашей базой, за исключением *.CDX файлов будет помещена в архив с разбивкой по датам в D:\Backups. Можно также написать файл all.cmd, в котором перечислить все подлежащие архивации базы: Код cd D:\Backups call arc.cmd BUH 1SBDB Теперь что касается автоматической регистрации баз в списке. Берем пользователя у которого прописан полный список необходимых баз и экспортируем в reg файл ветку реестра [HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\Titles] , например, помещая ее в файл Spisok_Baz.reg. Далее создаем файл Spisok_Baz.cmd следующего содержания: Код @echo off setlocal if defined PROCESSOR_ARCHITEW6432 (set reg="%systemroot%\sysnative\reg.exe") else (set reg=reg) set userfile=Spisok_Baz.reg set savepath=%~dp0 call :restore "hkcu\Software\1C\1Cv7\7.7\Titles" "%savepath%%userfile%" goto :eof :restore if exist %2 ( %reg% query %1 >nul 2>^&1 if not errorlevel 1 ( echo. echo Deleting %1... %reg% delete %1 /f ) echo. echo Importing %2... %reg% import %2 ) После чего прописываем его в автозагрузку для всех пользователей, либо с помощью групповых политик в качестве сценария входа в систему. При входе пользователя в систему у него очистится список баз и добавятся все базы сохраненные в Spisok_Baz.reg, если вы не хотите чтобы список баз очищался, а только добавлялись новые, тогда закомментируйте с помощью команды rem или удалите строчку %reg% delete %1 /f . -------------------- |
|
|
![]() ![]() |
Текстовая версия | Сейчас: 24.6.2025, 2:53 | |
|