<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AutoHotkey + ERUNT = Удобный бэкап реестра]]></title>
		<link>http://forum.script-coding.com/viewtopic.php?id=83</link>
		<atom:link href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=83&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AutoHotkey + ERUNT = Удобный бэкап реестра».]]></description>
		<lastBuildDate>Mon, 31 Jul 2006 12:44:24 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[AutoHotkey + ERUNT = Удобный бэкап реестра]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=202#p202</link>
			<description><![CDATA[<p>А вам известна чудо прожка ERUNT ? Если нет, то настоятельно рекомендую. С её помощью можно <strong>очень легко</strong> делать бэкап реестра и восстанавливать его. Прог для таких целей существует немало, но если учесть, что ERUNT не требует установки, может работать из командной строки, а сам процес хоть сохранения, хоть восстановления занимает <strong>максимум 2 секунды</strong> (перезагрузка после восстановления, не в счет), то, как говорится, маст хэв. В комплекте с ней идут две крошечные утилитки для автоматизации бэкапов и для сжатия реестра. А весь комплект целиком весит 500 кб (!). К тому же, программа бесплатна. Я её мгновенно полюбил как незаменимый инструмент при экспериментах с реестром. Юзаю уже года полтора-два и ни разу не глюканула.<br />Найти это чудо немецкой мысли можно здесь <a href="http://www.larshederer.homepage.t-online.de/erunt">http://www.larshederer.homepage.t-online.de/erunt</a>. (Предложат пройти на другие сайты, поэтому вот прямой линк на закачку <a href="http://www.aumha.org/downloads/erunt.zip">http://www.aumha.org/downloads/erunt.zip</a>). На сайте можно взять русификатор, но я бы не рекомендовал его использовать по причине его кривости. На сайте же есть и крошечный vbs-скрипт для автоматизации бэкапа (правда, кажется, он на немецком).<br />Этот vbs-скрипт показался мне малофункциональным, поэтому я решил написать свой (AHK). Собственно это был один из первых AutoHotkey&#039;ных скриптов, который я написал. Теперь я его немного подредактировал и предлагаю вам. Если поместить его в автозагрузку, то он будет ежедневно создавать бэкап реестра. Можно указать, чтобы бэкапилось в подпапки по дням недели, можно указать, чтобы бэкап создавался только один раз в день. И, конечно, можно запускать скрипт &quot;вручную&quot; (перед тем как поковыряться в реестре). Короче, посмотрите сами. Скриптец незатейлив.<br /><strong>В качестве бонуса</strong>, прикладываю свой перевод для ERUNT&#039;а. Возможно, перевод и не высший, но точно лучше предлагаемого на оф. сайте. В архиве 4 файла, которые нужно поместить в папку с ERUNT&#039;ом.</p><div class="codebox"><pre><code>;*******************************************************************************
; AutoHotkey Version:   1.0.44.08+
; Автор:                Androgen Belkin
; Имя скрипта:          ERUNT_Run.ahk (v.1.1)
;*******************************************************************************
; Создание бэкапа реестра с помощью ERUNT.
;*******************************************************************************
#NoEnv      ; запрещаем имена переменных как у переменных окружения (повышаем производительность скрипта)
#NoTrayIcon ; не отображать иконку скрипта в трее

; ========== НАСТРОЙКИ ПОЛЬЗОВАТЕЛЯ ===============
ERUNT_Path = D:\Totalcmd\Utilits\Erunt\ERUNT.EXE ; путь к экзешнику
Dest_Path = G:\_MyRegBackup ; путь к целевой папке (куда сохранять резервные копии)
Day_Sub_Dir = 1          ; создавать ли подпапку с днем недели (1 - &quot;да&quot;, любое другое значение - &quot;нет&quot;)
Sysreg = 1               ; сохранять ли системный реестр (1 - &quot;да&quot;)
Curuser = 1              ; сохранять ли реестр текущего пользователя (1 - &quot;да&quot;)
Otherusers = 0           ; сохранять ли загруженный реестр других пользователей (1 - &quot;да&quot;)
Noconfirmdelete = 1      ; НЕ подтверждать удаление уже существующих резервных копий в папке назначения (1 - НЕ подтверждать)
Noprogresswindow = 0     ; НЕ показывать окно прогресса выполнения (1 - НЕ показывать)
Only_Once_In_Day = 0     ; создавать бэкап только один раз в день или при каждом входе в систему (1 - один раз в день)
Final_Msg = 1            ; показывать ли сообщение об окончании бэкапа (1 - &quot;да&quot;)
Title = ERUNT. Бэкап реестра ; заголовок для окон сообщений
; ========== КОНЕЦ НАСТРОЕК ПОЛЬЗОВАТЕЛЯ ==========

; ПРОВЕРЯЕМ ПРАВИЛЬНОСТЬ УКАЗАНИЯ ПУТЕЙ
IfNotExist, %ERUNT_Path% ; если ERUNT.exe не найден, то...
{
    MsgBox, 0, %Title%, %A_Space%            Неверно задан путь к ERUNT.exe`nПроверьте НАСТРОЙКИ ПОЛЬЗОВАТЕЛЯ в скрипте
    ExitApp ; закончить скрипт
}
If Day_Sub_Dir = 1 ; если указано создавать подпапку с именем дня недели, то...
{
    FormatTime, Cur_Day,, dddd ; получаем сегодняшний день недели
    StringUpper, Cur_Day, Cur_Day, T ; делаем первую букву дня недели заглавной (мне так красивей)
    Dest_Path = %Dest_Path%\%Cur_Day% ; добавляем день недели к целевой папке
}
IfNotExist, %Dest_Path% ; если целевой папки не существует, то...
{
    FileCreateDir, %Dest_Path% ; создать целевую папку
    If ErrorLevel != 0 ; если создать папку не удалось, то...
    {
        MsgBox, 48, %Title%, Не могу создать папку:`n&quot;%Dest_Path%&quot; ; показать сообщение
        ExitApp ; закончить скрипт
    }
}

; ПРОВЕРЯЕМ, НУЖНО ЛИ СОЗДАВАТЬ РЕЗЕРВНУЮ КОПИЮ ИЛИ ОНА СЕГОДНЯ УЖЕ БЫЛА СОЗДАНА
If ( FileExist( Dest_Path &quot;\ERDNT.INF&quot; ) AND Only_Once_In_Day = 1 )
{ ; если бэкап уже существует и указано сохранять только раз в день, то...
    FileReadLine, Backup_Date, %Dest_Path%\ERDNT.INF, 2 ; читаем вторую строку этого файла (там написана дата)
    FormatTime, Cur_Date,, dd.MM.yyyy ; получаем текущую дату в том же формате
    If InStr( Backup_Date, Cur_Date ) ; если даты совпадают, то...
        ExitApp ; закончить скрипт
}

; ФОРМИРУЕМ КОМАНДНУЮ СТРОКУ
Cmd_String = &quot;%Dest_Path%&quot; ; берем путь в кавычки (на случай, если в нем есть пробелы)
If Sysreg = 1 ; если указано сохранять системный реестр, то...
    Cmd_String = %Cmd_String% sysreg ; добавить команду в командную строку
If Curuser = 1 ; если указано сохранять реестр текущего пользователя, то...
    Cmd_String = %Cmd_String% curuser ; добавить команду в командную строку
If Otherusers = 1 ; если указано сохранять загруженный реестр других пользователей, то...
    Cmd_String = %Cmd_String% otherusers ; добавить команду в командную строку
If Noconfirmdelete = 1 ; если указано не подтверждать удаление уже существующих резервных копий, то...
    Cmd_String = %Cmd_String% /noconfirmdelete ; добавить команду в командную строку
If Noprogresswindow = 1 ; если указано не показывать окно прогресса выполнения, то...
    Cmd_String = %Cmd_String% /noprogresswindow ; добавить команду в командную строку

; БЭКАПИМ РЕЕСТР
RunWait, %ERUNT_Path% %Cmd_String% ; запускаем бэкап реестра (и ждем окончания его работы)
If Final_Msg = 1 ; если указано показывать финальное сообщение, то...
    MsgBox, 0, %Title%, Резервное копирование реестра завершено.`n`nРеестр сохранен в папку:`n`n&quot;%Dest_Path%&quot; ; показать сообщение</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Androgen)]]></author>
			<pubDate>Mon, 31 Jul 2006 12:44:24 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=202#p202</guid>
		</item>
	</channel>
</rss>
