[CMD] Импорт Reg-файла

Паразит

Участник
Сообщения
62
Реакции
1
Привет.

Как узнать, что импорт REG-файла прошёл успешно?

Допустим, я запускаю батник с таким содержимым.

reg import "C:\Kemp\111.reg"
echo %errorlevel%

Reg-файл имеет такое содержимое.

[HKEY_CURRENT_USER\Software\111]

В любом случае возвращается 0.

Даже если доступ к ключу запрещён, и ничего не вносится.
Даже если корневого раздела не существует.

Во всех справках говорится, что при сбое будет возвращена единица.
 
Последнее редактирование:
Reg-файл имеет такое содержимое.
reg-файл не может иметь такое содержимое.
У него, как минимум, должен быть ещё и заголовок:

Windows Registry Editor Version 5.00

Я не знаю, почему у вас 0. У меня на Win7 все возвращает, как положено - 1, если ошибка.
regedit (на счёт reg.exe не скажу, но скорее всего так же) может импортировать данные из .reg, пропустив часть из них, где есть конфликты доступа и т.п.
Возможно, в каких-то случаях, он будет выдавать код возврата не такой, как ожидаете.
Приведите ваш эксперимент полностью.

В какой ОС запускаете, и как запускаете, с командной строки, или из бат-файла, cmd или bat, EnableExtensions включено или нет.
Ваш полный текст reg-файла.
[HKEY_CURRENT_USER\Software\111] - почему должен выдавать ошибку. Если заблокировали, то каким образом? Если 111 - уже существует, то запрет ничего не даст, раздел уже есть, запись не требуется.

В большинстве случаев достаточно:
Код:
reg import "C:\Kemp\111.reg" && echo OK
Но если нужна экстра-безопасность, можно проверить всё по отдельности через reg query :)
 
Reg-файл нормальный.
Код:
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\111]

[HKEY_CURRENT_USER\Software\111\222]

Содержимое батника.

Код:
regedit /s C:\Temp\111.reg

echo %errorlevel%
Ключ реестра заблокирован запретом доступа CACL.
Система XP.
 
Последнее редактирование модератором:
111.png
 
Что в итоге, разобрался?

Ключ реестра заблокирован запретом доступа CACL.
Какой именно?

Пора обновляться.
На Хрюше всё совсем по-другому. И консольные утилиты по работе с реестром там с довольно ограниченным функционалом. Ты же видел в консоли, что при импорте было написано "Операция успешно завершена". Т.е. утилита reg.exe там изначально неправильно определяет состояние операции. Так что на XP только reg query.
 
Последнее редактирование модератором:
Как так? reg.exe пишет в STDOUT.
regedit не пишет, т.к. это графическая утилита.
 
Ну сделай скрипт на любом языке (vbs,jscript,cmd), который будет писать в раздел, допустим, "HKEY_CURRENT_USER\Environment"
параметр "Sport", со значением "Foot". С сообщением или с логом, об ошибке или об удаче.
Потом удаляем этот параметр. Запрещаем к разделу "HKEY_CURRENT_USER\Environment" доступ через безопасность.
И опять пытаемся внести этот же параметр. С сообщением или с логом, об ошибке или об удаче.
 
Последнее редактирование:
Назад
Сверху Снизу