为Windows 7创建.reg文件


16

我创建了一个.reg文件,但是当我双击它时,它不想被导入。

指定的文件不是注册表脚本。您只能从注册表编辑器中导入二进制注册表文件。

这是.reg文件的内容

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

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

有人可以帮我吗?提前致谢

Answers:


6

我不知道这些引号如何最终存储在该文件中,但我会认为这些引号不起作用(也许您是从Wordpress博客中复制出来的)。

除其他外,我认为应该是这样的:

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

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

1
+1可能是,也许他做了一些使用不同角色的国际投入。
Tamara Wijsman 2012年

我没注意到!您是对的,我是从网上复制下来的,谢谢!
Aximili 2012年

34

这不是注册表文件的有效语法,缺少标题。

在前面添加一行: Windows Registry Editor Version 5.00

如果您使用Unicode保存文件,请检查是否存在无效字符,这可能是问题所在。


但是aximili shouold应该确保此文件是unicode。REGEDIT4应该用于ansi文件。
crea7或2012年

1
@ crea7or:他要插入的文件不需要是Unicode。
Tamara Wijsman 2012年

3
这个答案是正确的。
Gras Double

正如Gras Double所说,这个答案是正确的。
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

允许的编码似乎也与Windows API字符串相对应,它们是:

  • 8位固定宽度:Windows-1252-与ISO-8859-1几乎相同
  • 16位固定宽度:UCS-2LE(小尾数)-与UTF-16基本相同

注意:当文本编辑器说“ unicode”作为编码时,可能表示UTF-8,这是一种可变宽度编码,与内部Windows天真的不兼容。

注2(编辑):ASCII是7位,并且我所知道的所有使用中的处理器均为2位的幂,因此它将始终包裹在其他一些ASCII超集中,例如1252。#thingsyoulearnafteruni


4

看看这个网站,它帮助我解决了以下问题:“指定的文件不是注册表脚本” –编码如何破坏您的早晨

事实证明,编码会破坏您的早晨。看一下消息,我看到“……仅从…导入二进制注册表文件”,我想“为什么这东西认为它是二进制的?”。的确如此。我在TextPad中打开了备份文件,而不仅仅是单击Ctrl + S或“保存”,而是选择“另存为”。这样做可以显示此菜单,并且我突出了我的问题:

那就对了。没有我做任何事情,TextPad会将文件另存为Unicode。Regedit希望获取经过ANSI编码的.reg文件。所以我将Encoding更改为ANSI,保存了文件,再次运行,一切正常。这让我沮丧了20分钟,所以希望这可以帮助其他人。


1

我遇到了同样的问题,因为我将其另存为UTF-8-BOM。它应该是没有BOM(字节顺序标记)的UTF-8。值得注意的是。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.