題 為Windows 7創建.reg文件


我創建了一個.reg文件但是當我雙擊它時,它不想導入。

指定的文件不是註冊表腳本。您只能導入二進製文件   註冊表編輯器中的註冊表文件。

這是.reg文件的內容

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

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

有人能幫幫我嗎?提前致謝


11
2018-03-25 12:51


起源




答案:


我不知道這些引用是如何在該文件中結束的,但我認為這些不起作用(也許你是從Wordpress博客上複製它)。

除了別的什麼,我認為它應該是這樣的:

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

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

5
2018-03-25 15:34



+1可能是,也許他做了一些使用不同字符的國際輸入。 - Tom Wijsman
我沒注意到!你是對的我把它從網上複製過來,謝謝! - Aximili


這不是註冊表文件的有效語法,它缺少標題。

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

檢查是否存在無效字符,如果您使用Unicode保存文件可能是問題。


25
2018-03-25 12:54



但aximili shouold確保這個文件是unicode。 REGEDIT4應該用於ansi文件。 - crea7or
@ crea7or:該文件不需要是他試圖插入的Unicode。 - Tom Wijsman
這個答案是正確的。 - Gras Double
正如Gras Double所說,這個答案是正確的。 - pdwalker


只需編譯所有答案以及我發現的一些額外信息。

第一行標題: 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


5
2017-11-16 20:52





看看這個網站,它幫助我解決了這個問題: “指定的文件不是註冊表腳本” - 編碼如何破壞您的早晨

事實證明,編碼可能毀了你的早晨。看一下這條消息,我看到了“......只導入來自......的二進製文件註冊表文件”,我想“為什麼這個東西認為它是二進製文件?”。為什麼呢。我在TextPad中打開了文件,而不是只按Ctrl + S或Save,我選擇了“另存為”。這樣做了這個菜單,我突出了我的問題:

那就對了。沒有我做任何事情,TextPad將把這個文件保存為Unicode。 Regedit希望獲得ANSI編碼的.reg文件。所以我將編碼更改為ANSI,保存文件,再次運行,一切正常。它給我帶來了20分鐘的挫折感,所以希望這可以幫助其他人。


4
2017-09-24 09:36





我遇到了同樣的問題,因為我把它保存為UTF-8-BOM。它應該是沒有BOM(字節順序標記)的UTF-8。值得注意的是。


1
2018-05-04 14:01





你也可以使用 REG實用程序 如果符合您的需要,通過命令行操作註冊表。


0
2018-03-25 14:47