Warning: следующая статья включает в себя редактирование системного реестра. Неправильное использование редактора реестра может вызвать серьезные проблемы, требующие переустановки операционной системы. Используйте редактор реестра и следующие направления на свой страх и риск.
использование REGEDIT в DOS
тот же REGEDIT, который мы используем в Windows, также работает как программа DOS. СМЕРЗАТЬСЯ.EXE поддерживает аргументы командной строки, которые позволяют нам сделать полное восстановление реестра, в то время как оставляя "грязь" и пустые места позади. Мы избавим вас от необходимости повторно вводить команды, создав четыре пакетных файла, которые вы можете носить с собой и запускать с дискеты.
Для простоты предположим, что это система.DAT, ПОЛЬЗОВАТЕЛЬ.DAT, и REGEDIT.EXE находиться в C:\WINDOWS справочник.
Шаг первый: удалите атрибуты ReadOnly и Hidden из системы.DAT и пользователь.DAT
Первый шаг в восстановлении реестра Windows из DOS-удаление атрибутов ReadOnly, Hidden и System из системы.DAT и пользователь.DAT файлы. Пакетный файл, позволяющий включать и выключать атрибуты по желанию (REGATT.BAT) выглядит следующим образом:
@echo выкл
если не "%1"==" -", если не "%1"=="+" Гото наставить
введите attrib %1р %1ч %1С c:\windows\system.dat
введите attrib %1р %1ч %1С c:\windows\user.dat
Гото ENDIT
:НАСТАВЛЯТЬ
эхо.
echo необходимо указать параметр - или +, например "%0 + " или " %0 -"
: ENDIT
эхо.
чтобы использовать его, введите команду REGATT - или REGATT+, чтобы удалить или добавить атрибуты файла, соответственно.
вот как REGATT.Летучая мышь работает:
@echo off: Prevents the lines that follow from being displayed on the screen while the commands are being executed. The "@" prevents "echo off" from displaying.
if not "%1"=="-" if not "%1"=="+" goto INSTRUCT: This makes the batch file look for one parameter and limits the parameter choices to either "-" or "+." If neither is found, the script jumps to the INSTRUCT portion of the batch file. Note the use of the double "equals" signs (==).
attrib %1r %1h %1s c:\windows\system.dat: Runs the "attrib" command on SYSTEM.DAT with either "-r -h -s" or "+r +h +s," depending on the parameter.
attrib %1r %1h %1s c:\windows\user.dat: Runs the "attrib" command on USER.DAT the same as it does for SYSTEM.DAT.
goto ENDIT: Jumps over the INSTRUCT statement since all went well.
:INSTRUCT: Label that identifies this portion of the batch file.
echo.–: Prints a blank line on the screen. Note that there is no space between "echo" and "."
echo You must specify a - or + parameter, as in "%0 +" or "%0 -": Instructions for using the batch file. The %0 is a variable that is automatically replaced by DOS with the name of the batch file you typed on the command line. If you typed regatt in lower case, the line will read "You must specify a - or + parameter, as in regatt + or regatt -." If you change the name of the batch file to "wom.bat" and type WOM in upper case, it will read "You must specify a - or + parameter, as in WOM + or WOM -" without further editing. Neat, huh?
:ENDIT: Label that identifies this portion of the batch file.
echo.: Prints a blank line on the screen before returning to the prompt.
Шаг второй: создайте резервную копию системы.DAT и пользователь.Процесс DATThe восстановление эффективно уничтожает актуального реестра. Если перестроение не удастся (я видел, как это происходит, когда файлы DAT сильно повреждены), реестра не будет. Наличие поврежденного реестра для восстановления лучше, чем отсутствие реестра вообще.
Чтобы сделать резервную копию, мы просто копируем систему "unattribbed".DAT и пользователь.DAT файлы REGBACK.ЛЕТУЧАЯ МЫШЬ:
@echo выкл
если "%1"=="" Гото поручить
копия c:\windows\system.dat c:\windows\system.%1
c:\windows\user копия.dat c:\windows\user.%1
Гото ENDIT
:НАСТАВЛЯТЬ
эхо.
echo необходимо ввести расширение файла от 1 до 3 символов, как в " %0 sav"
: ENDIT
эхо.
большинство линий в REGBACK.Летучие мыши похожи на тех, кто в регате.ЛЕТУЧАЯ МЫШЬ. Три уникальные линии:
if "%1"=="" goto INSTRUCT: This jumps to the INSTRUCT section if no parameter is given after the "regback" command. Without a parameter, the value of %1 is null, so the statement translates to if ""=="" goto INSTRUCT and, since double-quotes indeed equal double-quotes, the script jumps to give the user instructions.
copy c:\windows\system.dat c:\windows\system.%1: Copies SYSTEM.DAT to SYSTEM.parameter. Be sure to limit your parameter to three allowable DOS characters.
copy c:\windows\user.dat c:\windows\user.%1: Copies USER.DAT to USER.parameter as above.
Шаг третий: перестроение registryDO не пытайтесь выполнить эти команды, если вы не сделали резервные копии СИСТЕМЫ.DAT И USER.DAT! Помните, что вы уничтожите существующую копию реестра на этапе перестройки. Если восстановление не удастся, вы тоже. Убедитесь, что у вас есть собственная резервная копия.
REGREBLD.Летучая мышь выглядит так:
@echo выкл
эхо.
экспорт содержимого реестра echo. Подождать...
regedit /l:c:\windows\system.dat /r:c:\windows\
пользователь.dat / e c:\windows\newreg.рег
echo восстановление реестра Windows. Не перебивайте!
regedit /l:c:\windows\system.dat /r:c:\windows\
пользователь.dat / c c:\windows\newreg.рег
эхо.
del c:\windows\newreg.рег
эхо.
REGREBLD.BAT не принимает параметров. Вот что делают ключевые строки:
echo Exporting registry contents. Please wait...: The REGEDIT "export" command displays no information while it's executing. This is a courtesy line to let you know that something is happening.
regedit /l:c:\windows\system.dat /r:c:\windows\user.dat /e c:\windows\newreg.reg: Exports the contents of the current registry to a file we'll call "newreg.reg." The "/l:" and "/r:" switches point to the exact paths of SYSTEM.DAT and USER.DAT, respectively. The "/e" switch is for "export" and "c:\windows\newreg.reg" is the name of the target file that is created during the process.
echo Rebuilding the Windows registry. Do not interrupt!: Another courtesy statement. Unlike the "export" command, the REGEDIT "create" command displays a progress counter. However, it doesn't state what it's creating, only that it’s importing.
regedit /l:c:\windows\system.dat /r:c:\windows\user.dat /c c:\windows\newreg.reg: Creates a new registry from the contents of "c:\windows\newreg.reg." The key here is the "/c" switch, for "create." As soon as it is encountered, the current SYSTEM.DAT and USER.DAT are destroyed as new files are created from the data in newreg.reg. If this process is interrupted, the new registry will be incomplete and, therefore, useless.
echo.: The progress counter that is displayed by REGEDIT does not have a carriage return. This statement forces one at the completion of the "create" process.
del c:\windows\newreg.reg: Deletes the now unnecessary newreg.reg data file. You can remove this line if you want to look at the contents of newreg.reg before you delete it manually.
полная процедура экспорта/создания может занять довольно много времени, в зависимости от размера и состояния текущего реестра. Я видел, что восстановление реестра на настольных ПК занимает от пяти минут до более часа. Я не рекомендую использовать его на ноутбуках. Если перестроение успешно (и большую часть времени это), вы следующий шаг не понадобится.
Шаг четвертый: восстановление неудачной перестройки
Шаг четвертый включает в себя возвращение реестра в предыдущее состояние в случае сбоя восстановления оставляет вас без рабочей системы.DAT и пользователь.DAT файлы. Назовем этот пакетный файл сожалением.ЛЕТУЧАЯ МЫШЬ. Помните расширение, которое вы использовали при создании резервных копий? Вам понадобится это здесь:
@echo выкл
если "%1"=="" Гото поручить
если не существует c:\windows\system.%1 Гото NOFILE
если не существует c:\windows\user.%1 Гото NOFILE
attrib-r-h-s c:\windows\system.dat
введите attrib-р-н-ы c:\windows\user.dat
del c:\windows\system.dat
del c:\windows\user.dat
копия c:\windows\system.%1 c:\windows\system.dat
c:\windows\user копия.%1 c:\windows\user.dat
Гото ENDIT
: NOFILE
эхо.
echo не может найти один или несколько резервных файлов "%1"!
echo проверьте расширение файла и повторите попытку.
Гото ENDIT
:НАСТАВЛЯТЬ
эхо.
echo необходимо указать допустимое расширение файла резервной копии, например " %0 ext"
: ENDIT
эхо.
сожалению.Летучая мышь бежит, введя " сожаление ext "в командной строке, где" ext " - это расширение, используемое при создании резервных копий. Если файлы ext не найдены, сожаление говорит вам. Все команды сожаление похожи на те, которые мы использовали в предыдущих пакетных файлов. Обратите внимание, что после удаления системы произошел сбой.DAT и пользователь.DAT файлы, мы копируем резервные копии в DATs, в отличие от переименования резервных копий. Я никогда не чувствую себя комфортно, удаляя критически важные резервные файлы, пока я не буду абсолютно уверен, что они не будут необходимы снова. Удалите их вручную, когда вы очень удобный.
используйте то, что вы узнали
Теперь, когда у вас есть пакетные файлы, идти вперед и попробовать их на больной системе. Загрузите ПК с истинным DOS "только командная строка безопасного режима" и запустите файлы с дискеты. Если вы делаете дискету загрузочной, убедитесь, что у вас есть AUTOEXEC.Bat, который содержит выражения, указывающие на C:\WINDOWS;C:\WINDOWS\COMMAND. Успешное восстановление реестра решит многие из ваших "таинственных" проблем Windows, в том числе многие защиты Windows ошибки.
источник: TechRepublic