15

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

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

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

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

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

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

6 ответов6

30

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

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

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

7

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

Заголовок в первой строке: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

5

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

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

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

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

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

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

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

1

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

0

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .