Создание файла .reg для Windows 7

16

Я создал файл .reg, но когда я дважды щелкаю по нему, он не хочет быть импортированным.

Указанный файл не является сценарием реестра. Вы можете импортировать только двоичные файлы реестра из редактора реестра.

Вот содержимое файла .reg

[HKEY_CLASSES_ROOT\Folder\shell\PngCrush]
@=”PNG Crush”

[HKEY_CLASSES-ROOT\Folder\shell\PngCrush\command]
@=”E:\Programs\PNGCrush\crush.bat %1”

Может ли кто-нибудь помочь мне? заранее спасибо

Aximili
источник

Ответы:

6

Я не знаю, как эти цитаты оказались в этом файле, но я предполагаю, что они не работают (возможно, вы скопировали его из блога Wordpress).

Помимо всего прочего, я думаю, что это должно быть так:

[HKEY_CLASSES_ROOT\Folder\shell\PngCrush]
@="PNG Crush"

[HKEY_CLASSES-ROOT\Folder\shell\PngCrush\command]
@="E:\Programs\PNGCrush\crush.bat %1"
Der Hochstapler
источник
1
+1 Может быть, возможно, он сделал какой-то международный ввод, который использует разные символы.
Тамара Вийсман
Я этого не заметил! Вы правы, я скопировал это из сети, спасибо!
Аксимили
34

Это неверный синтаксис файла реестра, в нем отсутствует заголовок.

Добавьте строку перед: Windows Registry Editor Version 5.00

Проверьте, есть ли недопустимые символы, если вы сохранили файл в Unicode, который может быть проблемой.

Тамара Вийсман
источник
Но Aximili должен быть уверен, что этот файл является Unicode. REGEDIT4 следует использовать для файлов ANSI.
crea7or
1
@ crea7or: файл не обязательно должен быть Unicode для того, что он пытается вставить.
Тамара Вийсман
3
Этот ответ правильный.
Двойной Гра
Как говорит Грап Дабл, этот ответ правильный.
pdwalker
8

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

Заголовок в первой строке: Windows Registry Editor Version 5.00

  • Пустая строка между ключами, разделенными "CRLF"
  • скобки для ключей без пробелов
  • значения в двойных кавычках
  • целочисленные значения / слова в шестнадцатеричном виде - строчные буквы для букв

пример

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\MyOrg]

[HKEY_LOCAL_MACHINE\SOFTWARE\MyOrg\MyKey]
"My Value"="Some String"
"My Flag or Integer"=dword:00000001

Разрешенные кодировки также соответствуют строкам API-интерфейса Windows:

  • 8-битная фиксированная ширина: Windows-1252 - почти такая же, как ISO-8859-1
  • 16-битная фиксированная ширина: UCS-2LE (little-endian) - в основном такая же, как UTF-16

Примечание: когда текстовый редактор говорит «unicode» для кодировки, это, вероятно, означает UTF-8, который является кодировкой переменной ширины, не совместимой наивно с внутренней Windows

Примечание 2 (правка): ASCII является 7-разрядным, и все используемые мной процессоры имеют мощность 2 бита, поэтому он всегда будет заключен в какой-то другой набор ASCII, например 1252. #thingsyoulearnafteruni

Сет
источник
4

Взгляните на этот сайт, он помог мне с этой проблемой: «Указанный файл не является сценарием реестра» - Как кодировка может испортить ваше утро

Оказывается, что кодировка может испортить ваше утро. Взглянув на сообщение, я увидел «… импортировать только двоичные файлы реестра из…» и подумал: «Почему эта вещь думает, что она двоичная?». Почему так и есть. Я открыл файл обратно в TextPad, и вместо того, чтобы просто нажать Ctrl + S или Сохранить, я выбрал «Сохранить как». При этом было представлено это меню, и я выделил свою проблему:

Это верно. Если бы я ничего не делал, TextPad собирался сохранить этот файл как Unicode. Regedit ожидает получить файлы .reg с кодировкой ANSI. Поэтому я изменил кодировку на ANSI, сохранил файл, запустил его снова, и все работало нормально. Это вызвало у меня разочарование в течение хороших 20 минут, так что надеюсь, что это поможет кому-то еще.

Витумбико Смит Нхвази
источник
1

У меня была такая же проблема, потому что я сохранил ее как UTF-8-BOM. Это должен быть UTF-8 без BOM (Byte Order Mark). Это стоит отметить.

Павел Валашек
источник
0

Вы также можете использовать утилиту REG для управления реестром через командную строку, если это соответствует вашим потребностям.

lrosa
источник