Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Бекап дефолтного юзер-профиля браузера Vivaldi

Ответить
Настройки темы
CMD/BAT - [решено] Бекап дефолтного юзер-профиля браузера Vivaldi

Аватара для barn

Новый участник


Сообщения: 8
Благодарности: 3


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: barn
Дата: 02-06-2019
Описание: оптимизация кода сообщения
Приветствую всех читающих этот тред.
Пытаюсь написать сценарий резервного копирования и архивации, дефолтного юзер-профиля браузера Vivaldi.
Прошу помощи в написании, а именно: обнаружение и указание на правку грубых, а так же нелепых ошибок,
подсказок в виде оптимального кода, поскольку моё понимание кода, приходит только в визуальном сравнении.
По возможности кратко объяснить или точно, с указанием маршрута, послать в раздел справки или к готовым решениям на форуме.
В идеале - всё отточить, сделать всё по фэн-шуй изящней чем предложено мной.
читать дальше »
Началось всё здесь (сказал - делай), а поскольку мои познания в этой теме чуть выше начальных, пришлось сесть за учебники.
Насыщение и передозировка информацией случилась буквально через пару часов, с начала "обучения".
Тому косвенно способствовали: малое количество или полное отсутствие, для наглядности и усвоения, "живых" примеров, а так же мелкий шрифт изданий.
Через выдачу поисковой системы был найден сайт с авторскими статьями Белый Александра Петровича.
Сайт был благополучно загружен на компьютер, и обучение продолжилось в оффлайне. Но и тут, мало примеров для понимания, что и как работает.
Поэтому, начал параллельно читать и треды здесь, на форуме.
В результате появился скрипт (Альфа), для работы из директорий архиваторов «7-Zip» и «WinRar».
Позже, был скачан пакет «7z-extra» с автономным архиватором 7za (7-Zip), и строку его запуска и работы добавил в скрипт.

Код:

Код: Выделить весь код
cls
@echo off
title Backup profile Vivaldi
setlocal
rem Задаём переменную VIVALDI - Путь к каталогу браузера
set VIVALDI=%LocalAppData%\Vivaldi
rem Задаём  переменную END, куда будет помещён архив (например "C:\Users\XXXXX\Documents")
set END=%HomePath%\Documents
rem Задаём переменные для создания имени  файла архива из текущей даты и времени
set vdate=%date:~-10%
set vtime=%time:~0,-3%
set vtime=%vtime::=.%
rem Задаём переменную DEFAULT  и создаём каталог сбора файлов (например в системной "Temp")
set DEFAULT=%Temp%\Vivaldi\User Data\Default
mkdir "%DEFAULT%\"
rem Копируем  нужные нам папки  из каталога (точнее из "User Data / Default")
xcopy "%VIVALDI%\User Data\Default\databases" "%DEFAULT%\databases" /s /q /i /v
xcopy "%VIVALDI%\User Data\Default\Extension Rules" "%DEFAULT%\Extension Rules" /s /q /i /v
xcopy "%VIVALDI%\User Data\Default\Extensions" "%DEFAULT%\Extensions" /s /q /i /v
xcopy "%VIVALDI%\User Data\Default\Local App settings" "%DEFAULT%\Local App settings" /s /q /i /v
xcopy "%VIVALDI%\User Data\Default\Local Extension settings" "%DEFAULT%\Local Extension settings" /s /q /i /v
xcopy "%VIVALDI%\User Data\Default\Local Storage" "%DEFAULT%\Local Storage" /s /q /i /v
rem Копируем файлы
copy /v "%VIVALDI%\User Data\Default\Bookmarks" "%DEFAULT%\Bookmarks"
copy /v "%VIVALDI%\User Data\Default\Favicons" "%DEFAULT%\Favicons"
copy /v "%VIVALDI%\User Data\Default\file_mapping.json" "%DEFAULT%\file_mapping.json"
copy /v "%VIVALDI%\User Data\Default\Login Data" "%DEFAULT%\Login Data"
copy /v "%VIVALDI%\User Data\Default\Preferences" "%DEFAULT%\Preferences"
copy /v "%VIVALDI%\User Data\Default\Secure Preferences" "%DEFAULT%\Secure Preferences"
rem Создаём файл "First Run" - маркер для браузера, что первый запуск и настройка произведены
copy nul "%Temp%\Vivaldi\User Data\First Run"
rem Копируем кастомные логотипы сайтов экспресс-панели (задайте свой путь или переменную)
xcopy "%VIVALDI%\IMG" "%Temp%\Vivaldi\IMG" /s /q /i /v
rem Запускаем процесс создания архива
7za.exe a -tzip "%Temp%\backup.zip" "%Temp%\Vivaldi\"
C:
rem Перемещаем готовый архив, с переименованием <дата, время> в каталог юзера
move "%Temp%\backup.zip" "%END%\%vdate%,%vtime%.zip"
rem Удаляем каталог сбора файлов
rmdir /s /q "%Temp%\Vivaldi"
rem Сигнал завершения  =))
rundll32 user32,MessageBeep
rem Открытие папки с готовым архивом
explorer "%END%"
endlocal
exit

Вопрос: Если запустить батник не на системном диске, почему то не отрабатывает команда перемещения (38 строка),
хотя отработали предыдущие команды копирования, когда собирались файлы для архива.
Мои действия: пробовал использовать копирование, отменял переименование в процессе перемещения, использовал свой темп (set myTemp=%Temp%).
Вылечил командой "С:", разместив её строкой выше. Но понимание, так и не пришло - вопрос остался.
ещё
Текущие состояние:
Сейчас пишу-тестирую скрипт (Бета), в нём будет: Обнаружение и закрытие всех процессов браузера,
Запуск архиватора по результату поиска, 7-Zip или WinRar, и в зависимости от разрядности системы. А если архиваторов нет, то запуск автономного 7za.
Генерация имени архива по текущей дате и времени, на момент создания, плюс билд-номер браузера (пока не решил откуда брать - есть как минимум 4 варианта).
В планах:
Само-обновляемый sfx-архив.

Буду признателен и рад любой помощи.
Спасибо.

Отправлено: 18:07, 31-05-2019

 

Аватара для barn

Новый участник


Сообщения: 8
Благодарности: 3

Профиль | Отправить PM | Цитировать


Сам отвечу на свой вопрос:
Цитата barn:
Если запустить батник не на системном диске, почему то не отрабатывает команда перемещения (38 строка) »
Причина, 8-я строка кода set END=%HomePath%\Documents, переменная HOMEPATH разворачивается как "\Users\Имя", без указания буквы диска.
Заменил на USERPROFILE, и всё заработало, правильно будет set END=%UserProfile%\Documents

Отправлено: 12:49, 02-06-2019 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для barn

Новый участник


Сообщения: 8
Благодарности: 3

Профиль | Отправить PM | Цитировать


Финал, продолжение на форуме Vivaldi.
Код:
Код: Выделить весь код
cls
@echo off
title Backup profile Vivaldi
setlocal
rem Принудительно "гасим" процессы браузера
set "Apps=update_notifier.exe,vivaldi.exe"
:stop
for %%a in (%Apps%) do tasklist | findstr /irc:"^%%a" && (taskkill /f /t /im "%%a"& goto stop)
rem Задаём переменные, Vivaldi - каталог юзер-профиля, vPatch - путь к exe(шнику) браузера
set "Vivaldi=%LocalAppData%\Vivaldi"
set "vPatch=%LocalAppData%\Vivaldi\Application\vivaldi.exe"
rem Задаём переменную End, куда будет помещён архив (здесь"C:\Users\XXXXX\Documents")
set "End=%UserProfile%\Documents"
rem Задаём переменную UserD и создаём каталог сбора файлов (здесь системная "Temp")
set "UserD=%Temp%\Vivaldi\User Data"
mkdir "%UserD%\Default"
rem Копируем папки (расширения, их настройки, настройки браузера)
xcopy "%Vivaldi%\User Data\Default\databases" "%UserD%\Default\databases" /s /q /i /v
xcopy "%Vivaldi%\User Data\Default\Extension Rules" "%UserD%\Default\Extension Rules" /s /q /i /v
xcopy "%Vivaldi%\User Data\Default\Extensions" "%UserD%\Default\Extensions" /s /q /i /v
xcopy "%Vivaldi%\User Data\Default\Local App settings" "%UserD%\Default\Local App settings" /s /q /i /v
xcopy "%Vivaldi%\User Data\Default\Local Extension settings" "%UserD%\Default\Local Extension settings" /s /q /i /v
xcopy "%Vivaldi%\User Data\Default\Local Storage" "%UserD%\Default\Local Storage" /s /q /i /v
rem Копируем кастомные логотипы Экспресс-панели (задайте свой путь)
xcopy "%Vivaldi%\User Data\myLogo" "%UserD%\myLogo" /s /q /i /v
rem Копируем файлы (закладки, логины-пароли, настройки профиля)
copy /v "%Vivaldi%\User Data\Default\file_mapping.json" "%UserD%\Default\file_mapping.json"
copy /v "%Vivaldi%\User Data\Default\Bookmarks" "%UserD%\Default\Bookmarks"
copy /v "%Vivaldi%\User Data\Default\Login Data" "%UserD%\Default\Login Data"
copy /v "%Vivaldi%\User Data\Default\Preferences" "%UserD%\Default\Preferences"
copy /v "%Vivaldi%\User Data\Default\Secure Preferences" "%UserD%\Default\Secure Preferences"
rem Оптимизация (удаление *.ldb - обновляемые данные расширений, сайтов и настроек  пользователя) 
rem erase "%UserD%\*.ldb" /f /s /q
rem Копируем "First Run" (маркер - первый запуск и настройка произведены)
copy /v "%Vivaldi%\User Data\First Run" "%UserD%\First Run"
rem Задаём переменные для создания имени файла архива - из билда, даты и времени
set "vBuild=%vPatch:\=\\%"
wmic Datafile where name="%vBuild%" get Version /format:Textvaluelist >"%UserD%\First Run"
<"%UserD%\First Run" (for /f "tokens=2 delims==" %%a in ('more') do set "outBuild=%%a")
rem set "arcDT=%date: =0% %time: =0%"
rem for /f "tokens=1-7 delims=/-:., " %%a in ("%arcDT%") do (set arcDT=%%c-%%b-%%a_%%d.%%e.%%f)
for /f "delims=." %%i in ('wmic OS get LocalDateTime ^| find "."') do set osDT=%%i
set "aYear=%osDT:~0,4%"
set "aMonth=%osDT:~4,2%"
set "aDay=%osDT:~6,2%"
set "aHour=%osDT:~8,2%"
set "aMin=%osDT:~10,2%"
set "aSec=%osDT:~12,2%"
set "arcDT=%aYear%-%aMonth%-%aDay%_%aHour%.%aMin%.%aSec%"
set "arcName=Default [%outBuild%] %arcDT%"
rem Определяем разрядность системы, ищем архиватор "7-Zip" или "WinRar"
if %Processor_Architecture% == x86 (if not defined Processor_ArchiteW6432 goto bit32)
goto bit64
:bit32
path "%ProgramFiles%\7-Zip\";"%ProgramFiles%\WinRAR\"
goto cont
:bit64
path "%ProgramW6432%\7-Zip\";"%ProgramFiles(x86)%\7-Zip\";"%ProgramW6432%\WinRAR\";"%ProgramFiles(x86)%\WinRAR\"
:cont
rem Запускаем процесс создания и перемещения архива, с переименованием в каталог юзера
7z a -t7z "%Temp%\backup.7z" "%Temp%\Vivaldi" && move "%Temp%\backup.7z" "%End%\%arcName%.7z" 
if errorlevel 1 (Rar a -ep1 -r "%Temp%\backup.rar" "%Temp%\Vivaldi" && move "%Temp%\backup.rar" "%End%\%arcName%.rar") ^
|| (7za a -tzip "%Temp%\backup.zip" "%Temp%\Vivaldi" && move "%Temp%\backup.zip" "%End%\%arcName%.zip")
path; 
rem Удаляем каталог сбора файлов
rmdir /s /q "%Temp%\Vivaldi"
endlocal
rem Сигнал завершения  =))
rundll32 user32,MessageBeep
rem Открытие папки с готовым архивом
explorer "%UserProfile%\Documents"
timeout 3
exit

Последний раз редактировалось barn, 14-06-2019 в 05:38. Причина: финал


Отправлено: 17:25, 02-06-2019 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Бекап дефолтного юзер-профиля браузера Vivaldi

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интернет - Браузер Vivaldi Птушвиче Программное обеспечение Windows 15 30-05-2017 16:53
Представлена финальная версия браузера Vivaldi OSZone News Новости информационных технологий 0 07-04-2016 10:30
Vivaldi 1.0.162.9 OSZone Software Новости программного обеспечения 0 13-05-2015 09:30
Ограничения на размер профиля+исключение папок из профиля Grug Microsoft Windows NT/2000/2003 2 04-03-2009 11:09
Как настройки профиля Администратор перенести на Юзер? aishagrisha Хочу все знать 16 15-02-2009 16:45




 
Переход