[解決済み] Windowsレジストリを編集する場合、どのレジストリエディタバージョンでregファイルを開始すればよいですか(必要な場合)?
質問
によると マイクロソフト ナレッジベース記事 310516 Windowsのレジストリを編集する.regファイルは、次のどちらかで開始する必要があります。
-
Windows Registry Editor Version 5.00
Windows 2000、Windows XP、Windows Server 2003用
または -
REGEDIT4
Windows 95、Windows 98、Windows NT 4.0用。
Windows 7 の場合、次のように開始するのが正しいですか?
Windows Registry Editor Version 5.00
それともバージョン6にすべきでしょうか?
.batファイルを実行する場合、実際には全く必要ないのでしょうか?
現在のバージョンは レジストリエディタ メニューの ヘルプ メニューの項目で レジストリエディタについて .
解決方法は?
バッチファイルからWindowsのレジストリを処理するための標準的なアプリケーションは、主に2つ使用されています。
- レジ.exe
- regedit.exe
Windows x64では、32ビットアプリケーションと64ビットアプリケーションの両方が存在し、32ビットバージョンは32ビットアプリケーションのようにレジストリにアクセスするため、次のような意味になります。 レジストリリダイレクタ がアクティブになり、64 ビットアプリケーションのレジストリキーは 32 ビットアプリケーションからは見えません。 REG と レジディット .
を使用するのが一般的です。 REG の代わりに レジディット バッチファイル内のわずかなキーや値を取得(読み取りアクセス)または設定(書き込みアクセス)するためのものです。
の使い方は REGEDIT へのキーのエクスポート (読み取りアクセス) やレジストリファイルからのデータのインポート (書き込みアクセス) に使用する場合でも、Windows Vista 以降は常に管理者権限が必要です。 hkey_current_user (略称:HKCU)。
を使用することで
REG
のような多くの操作は
クエリ
(読み取りアクセス) または
追加
(HKCUへのアクセス(書き込み)は、管理者権限を必要としません。もちろん
キー_ローカル_マシン
(略称: HKLM)は管理者権限が必要で、その他にもあまり使わない操作があります。コマンドプロンプトウィンドウでの実行
reg /?
をクリックすると、利用可能な操作が表示されます。
reg query /?
と
reg add /?
をコンソールウィンドウで実行すると、Windowsレジストリのデータを取得(問い合わせ)または設定(追加)するための構文とオプションが表示されます。
.regファイルは、ファイルの最初の行に以下の内容が含まれている場合、有効なレジストリデータを含むファイルとしてのみインポート時に解釈されます。
-
REGEDIT4
または - Windowsレジストリエディタ バージョン5.00
レジストリエディタのバージョンやWindowsのバージョンではありません。ファイル自体のレジストリデータの形式に関するバージョン情報です。つまり、レジストリファイルのフォーマットのバージョンということになります。レジストリファイルの1行目 必ず は、この2つの文字列のどちらかを持っています。
このヘッダー行がない*.regファイルをインポートしようとすると、エラーが発生します。
Windows 2000(もあります。 regedt32.exe ) 以降のバージョンの Windows では、レジストリファイルのフォーマットバージョン 4 と 5 の両方がサポートされています。
Windows 95、98、Millennium、NT4は、フォーマット4のレジストリファイルのみをサポートしています。
つまり、レジストリファイルのどの形式を使用するかは、現在(2016年)では主にデータ次第ということですね。
主な違いは、対応する エンコーディング テキストデータの
レジストリファイルのフォーマット REGEDIT4 を使用した1文字1バイトのテキストファイルのみとすることができます。 コードページ Windowsで定義されている ロケールと言語 の設定は、Unicode を認識しないアプリケーションのためのもので、これは Windows-1252 北米・西ヨーロッパ諸国向け そのため、レジストリファイルの形式は REGEDIT4 を含むことはできません。 ユニコード は,コード値が255(10進数,16進数で0xFF)を超える文字である。
レジストリファイルのフォーマット Windowsレジストリエディタ バージョン5.00 に従って1文字あたり1バイト以上でエンコードされたテキストをサポートしています。 ユニコード 規格に準拠しています。そのため、*.reg ファイルは Windowsレジストリエディタバージョン5.00 が作成されます。 REGEDIT として UTF-16 リトルエンディアン でエンコードされたテキストファイルは バイトオーダーマーク (FF FE)を使用します。
したがって、インポート/エクスポートするデータがバイナリであっても、テキストであっても、どのファイル形式を使用してもかまいません。 ASCII 文字(コード値 < 10進128)がレジストリデータ全体の99.99%に相当します。
ASCII以外の文字については、Windowsのコマンドインタプリタがどのコードページを使用しているかを知ることがすでに重要です。
コードページ 437
(米国、カナダ)または
コードページ850
(西ヨーロッパ)のGUIコードページWindows-1252とは異なります。コマンドプロンプトウィンドウで実行する
chcp
または
mode con
は、コンソール用Windowsコマンドインタプリタが現在のコンピュータで使用しているデフォルトのコードページを出力します。
どうしてもUnicodeの文字列にも対応したい場合は、format Windowsレジストリエディタバージョン5.00 .
Unicodeの仮想的な例を見てみましょう。
Windowsレジストリのキー
HKCU\RegFormat
の2つのUnicode文字列が定義されています。
-
タイプの文字列
REG_SZ
という名前でTwo Not Equal 3
をUnicode文字列の値で指定します。2 ≠ 3
-
タイプの複数行の文字列
REG_MULTI_SZ
という名前でFormulas
をUnicode文字列の値で指定します。2 µs × 3 = 6 µs
A = π × r²
マイクロソフトの記事を見る レジストリ値の種類 , レジストリ変更の配布 そして レジストリのデータ型 レジストリの値の種類についての詳細は、こちらをご覧ください。
キーのエクスポート
HKCU\RegFormat
フォーマットで
Windowsレジストリエディタ バージョン5.00
Windows 2000 以降の標準フォーマットである UTF-16 LE エンコードされたテキストファイルは、596 バイトのコンテンツとなります。
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\RegFormat]
"Two Not Equal 3"="2 ≠ 3"
"Formulas"=hex(7):32,00,20,00,b5,00,73,00,20,00,d7,00,20,00,33,00,20,00,3d,00,\
20,00,36,00,20,00,b5,00,73,00,00,00,41,00,20,00,3d,00,20,00,c0,03,20,00,d7,\
00,20,00,72,00,b2,00,00,00,00,00
このファイルのバイトストリームは、16進ビューア/エディタに次のように表示されます。
00000000h: FF FE 57 00 69 00 6E 00 64 00 6F 00 77 00 73 00 ; ÿþW.i.n.d.o.w.s.
00000010h: 20 00 52 00 65 00 67 00 69 00 73 00 74 00 72 00 ; .R.e.g.i.s.t.r.
00000020h: 79 00 20 00 45 00 64 00 69 00 74 00 6F 00 72 00 ; y. .E.d.i.t.o.r.
00000030h: 20 00 56 00 65 00 72 00 73 00 69 00 6F 00 6E 00 ; .V.e.r.s.i.o.n.
00000040h: 20 00 35 00 2E 00 30 00 30 00 0D 00 0A 00 0D 00 ; .5...0.0.......
00000050h: 0A 00 5B 00 48 00 4B 00 45 00 59 00 5F 00 43 00 ; ..[.H.K.E.Y._.C.
00000060h: 55 00 52 00 52 00 45 00 4E 00 54 00 5F 00 55 00 ; U.R.R.E.N.T._.U.
00000070h: 53 00 45 00 52 00 5C 00 52 00 65 00 67 00 46 00 ; S.E.R.\.R.e.g.F.
00000080h: 6F 00 72 00 6D 00 61 00 74 00 5D 00 0D 00 0A 00 ; o.r.m.a.t.].....
00000090h: 22 00 54 00 77 00 6F 00 20 00 4E 00 6F 00 74 00 ; ".T.w.o. .N.o.t.
000000a0h: 20 00 45 00 71 00 75 00 61 00 6C 00 20 00 33 00 ; .E.q.u.a.l. .3.
000000b0h: 22 00 3D 00 22 00 32 00 20 00 60 22 20 00 33 00 ; ".=.".2. .`" .3.
000000c0h: 22 00 0D 00 0A 00 22 00 46 00 6F 00 72 00 6D 00 ; ".....".F.o.r.m.
000000d0h: 75 00 6C 00 61 00 73 00 22 00 3D 00 68 00 65 00 ; u.l.a.s.".=.h.e.
000000e0h: 78 00 28 00 37 00 29 00 3A 00 33 00 32 00 2C 00 ; x.(.7.).:.3.2.,.
000000f0h: 30 00 30 00 2C 00 32 00 30 00 2C 00 30 00 30 00 ; 0.0.,.2.0.,.0.0.
00000100h: 2C 00 62 00 35 00 2C 00 30 00 30 00 2C 00 37 00 ; ,.b.5.,.0.0.,.7.
00000110h: 33 00 2C 00 30 00 30 00 2C 00 32 00 30 00 2C 00 ; 3.,.0.0.,.2.0.,.
00000120h: 30 00 30 00 2C 00 64 00 37 00 2C 00 30 00 30 00 ; 0.0.,.d.7.,.0.0.
00000130h: 2C 00 32 00 30 00 2C 00 30 00 30 00 2C 00 33 00 ; ,.2.0.,.0.0.,.3.
00000140h: 33 00 2C 00 30 00 30 00 2C 00 32 00 30 00 2C 00 ; 3.,.0.0.,.2.0.,.
00000150h: 30 00 30 00 2C 00 33 00 64 00 2C 00 30 00 30 00 ; 0.0.,.3.d.,.0.0.
00000160h: 2C 00 5C 00 0D 00 0A 00 20 00 20 00 32 00 30 00 ; ,.\..... . .2.0.
00000170h: 2C 00 30 00 30 00 2C 00 33 00 36 00 2C 00 30 00 ; ,.0.0.,.3.6.,.0.
00000180h: 30 00 2C 00 32 00 30 00 2C 00 30 00 30 00 2C 00 ; 0.,.2.0.,.0.0.,.
00000190h: 62 00 35 00 2C 00 30 00 30 00 2C 00 37 00 33 00 ; b.5.,.0.0.,.7.3.
000001a0h: 2C 00 30 00 30 00 2C 00 30 00 30 00 2C 00 30 00 ; ,.0.0.,.0.0.,.0.
000001b0h: 30 00 2C 00 34 00 31 00 2C 00 30 00 30 00 2C 00 ; 0.,.4.1.,.0.0.,.
000001c0h: 32 00 30 00 2C 00 30 00 30 00 2C 00 33 00 64 00 ; 2.0.,.0.0.,.3.d.
000001d0h: 2C 00 30 00 30 00 2C 00 32 00 30 00 2C 00 30 00 ; ,.0.0.,.2.0.,.0.
000001e0h: 30 00 2C 00 63 00 30 00 2C 00 30 00 33 00 2C 00 ; 0.,.c.0.,.0.3.,.
000001f0h: 32 00 30 00 2C 00 30 00 30 00 2C 00 64 00 37 00 ; 2.0.,.0.0.,.d.7.
00000200h: 2C 00 5C 00 0D 00 0A 00 20 00 20 00 30 00 30 00 ; ,.\..... . .0.0.
00000210h: 2C 00 32 00 30 00 2C 00 30 00 30 00 2C 00 37 00 ; ,.2.0.,.0.0.,.7.
00000220h: 32 00 2C 00 30 00 30 00 2C 00 62 00 32 00 2C 00 ; 2.,.0.0.,.b.2.,.
00000230h: 30 00 30 00 2C 00 30 00 30 00 2C 00 30 00 30 00 ; 0.0.,.0.0.,.0.0.
00000240h: 2C 00 30 00 30 00 2C 00 30 00 30 00 0D 00 0A 00 ; ,.0.0.,.0.0.....
00000250h: 0D 00 0A 00 ; ....
最初の2バイトはコードページWindows-1252で次のように表示されます。
ÿþ
は、テキストエディタではテキスト編集モードで表示されないUTF-16 LE BOMの2バイトです。
しかし、エクスポートされたキー
HKCU\RegFormat
フォーマットで
REGEDIT4
をクリックすると
ファイルタイプ
エクスポートダイアログのドロップダウンリストを選択し
Win9x/NT4レジストリファイル
の場合、ANSI(正確にはWindows-1252)エンコードのテキストファイルとなり、内容はわずか180バイトになります。
REGEDIT4
[HKEY_CURRENT_USER\RegFormat]
"Two Not Equal 3"="2 ? 3"
"Formulas"=hex(7):32,20,b5,73,20,d7,20,33,20,3d,20,36,20,b5,73,00,41,20,3d,20,\
c0,20,d7,20,72,b2,00,00
このファイルのバイトストリームは、16進ビューア/エディタに次のように表示されます。
00000000h: 52 45 47 45 44 49 54 34 0D 0A 0D 0A 5B 48 4B 45 ; REGEDIT4....[HKE
00000010h: 59 5F 43 55 52 52 45 4E 54 5F 55 53 45 52 5C 52 ; Y_CURRENT_USER\R
00000020h: 65 67 46 6F 72 6D 61 74 5D 0D 0A 22 54 77 6F 20 ; egFormat].."Two
00000030h: 4E 6F 74 20 45 71 75 61 6C 20 33 22 3D 22 32 20 ; Not Equal 3"="2
00000040h: 3F 20 33 22 0D 0A 22 46 6F 72 6D 75 6C 61 73 22 ; ? 3".."Formulas"
00000050h: 3D 68 65 78 28 37 29 3A 33 32 2C 32 30 2C 62 35 ; =hex(7):32,20,b5
00000060h: 2C 37 33 2C 32 30 2C 64 37 2C 32 30 2C 33 33 2C ; ,73,20,d7,20,33,
00000070h: 32 30 2C 33 64 2C 32 30 2C 33 36 2C 32 30 2C 62 ; 20,3d,20,36,20,b
00000080h: 35 2C 37 33 2C 30 30 2C 34 31 2C 32 30 2C 33 64 ; 5,73,00,41,20,3d
00000090h: 2C 32 30 2C 5C 0D 0A 20 20 63 30 2C 32 30 2C 64 ; ,20,\.. c0,20,d
000000a0h: 37 2C 32 30 2C 37 32 2C 62 32 2C 30 30 2C 30 30 ; 7,20,72,b2,00,00
000000b0h: 0D 0A 0D 0A ; ....
どのような違いがあるのでしょうか?
-
レジェディット は、まずREG_SZ型の文字列をUnicodeからコードページWindows-1252に変換し、データをエクスポートしました。その結果、文字
?
の代わりに 非等号 の文字列で、ユニコード値 U+2260 を持つ。REG_SZ
なぜなら、この文字はコードページWindows-1252では使用できないからです。 -
複数行の文字列は、16進数値がちょうど半分になります(1文字あたり2バイトではなく、ちょうど1バイト)。
-
は 小型PI の Unicode 値 U+03C0 は、値 C0 (下位バイトのみ)で格納され、したがって、現在は文字
À
この文字は、コードページWindows-1252のコード値が0xC0であるためです。
ファイルからフォーマットでデータを取り込む Windowsレジストリエディタバージョン5.00 を実行すると、Windowsレジストリに以前と同じデータが取得されます。
しかし、ファイルからデータをインポートする場合、形式は REGEDIT4 の結果になります。
-
タイプの文字列
REG_SZ
という名前でTwo Not Equal 3
をANSI文字列の値で指定します。2 ? 3
-
タイプの複数行の文字列
REG_MULTI_SZ
名前付きFormulas
をUnicode文字列の値で指定します。2 µs × 3 = 6 µs
A = À × r²
文字
µ
と
×
と
²
はコード値 < 255 (10進数) であり、したがって、レジストリファイルのフォーマットにも正しく格納することができます。
REGEDIT4
. しかし
≠
と
π
は、フォーマット4で正しくエンコードできません。
形式のレジストリファイル Windowsレジストリエディタバージョン5.00 は、それ自体がUnicodeでエンコードされたテキストファイルであってはなりません。また、Windows-1252でエンコードされた内容のレジストリファイルである可能性もあります。
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\RegFormat]
"Two Not Equal 3"=hex(1):32,00,60,22,33,00
"Formulas"=hex(7):32,00,20,00,b5,00,73,00,20,00,d7,00,20,00,33,00,20,00,3d,00,\
20,00,36,00,20,00,b5,00,73,00,00,00,41,00,20,00,3d,00,20,00,c0,03,20,00,d7,\
00,20,00,72,00,b2,00,00,00,00,00
として16進数ビューア/エディタに表示されます。
00000000h: 57 69 6E 64 6F 77 73 20 52 65 67 69 73 74 72 79 ; Windows Registry
00000010h: 20 45 64 69 74 6F 72 20 56 65 72 73 69 6F 6E 20 ; Editor Version
00000020h: 35 2E 30 30 0D 0A 0D 0A 5B 48 4B 45 59 5F 43 55 ; 5.00....[HKEY_CU
00000030h: 52 52 45 4E 54 5F 55 53 45 52 5C 52 65 67 46 6F ; RRENT_USER\RegFo
00000040h: 72 6D 61 74 5D 0D 0A 22 54 77 6F 20 4E 6F 74 20 ; rmat].."Two Not
00000050h: 45 71 75 61 6C 20 33 22 3D 68 65 78 28 31 29 3A ; Equal 3"=hex(1):
00000060h: 33 32 2C 30 30 2C 36 30 2C 32 32 2C 33 33 2C 30 ; 32,00,60,22,33,0
00000070h: 30 0D 0A 22 46 6F 72 6D 75 6C 61 73 22 3D 68 65 ; 0.."Formulas"=he
00000080h: 78 28 37 29 3A 33 32 2C 30 30 2C 32 30 2C 30 30 ; x(7):32,00,20,00
00000090h: 2C 62 35 2C 30 30 2C 37 33 2C 30 30 2C 32 30 2C ; ,b5,00,73,00,20,
000000a0h: 30 30 2C 64 37 2C 30 30 2C 32 30 2C 30 30 2C 33 ; 00,d7,00,20,00,3
000000b0h: 33 2C 30 30 2C 32 30 2C 30 30 2C 33 64 2C 30 30 ; 3,00,20,00,3d,00
000000c0h: 2C 5C 0D 0A 20 20 32 30 2C 30 30 2C 33 36 2C 30 ; ,\.. 20,00,36,0
000000d0h: 30 2C 32 30 2C 30 30 2C 62 35 2C 30 30 2C 37 33 ; 0,20,00,b5,00,73
000000e0h: 2C 30 30 2C 30 30 2C 30 30 2C 34 31 2C 30 30 2C ; ,00,00,00,41,00,
000000f0h: 32 30 2C 30 30 2C 33 64 2C 30 30 2C 32 30 2C 30 ; 20,00,3d,00,20,0
00000100h: 30 2C 63 30 2C 30 33 2C 32 30 2C 30 30 2C 64 37 ; 0,c0,03,20,00,d7
00000110h: 2C 5C 0D 0A 20 20 30 30 2C 32 30 2C 30 30 2C 37 ; ,\.. 00,20,00,7
00000120h: 32 2C 30 30 2C 62 32 2C 30 30 2C 30 30 2C 30 30 ; 2,00,b2,00,00,00
00000130h: 2C 30 30 2C 30 30 0D 0A 0D 0A ; ,00,00....
このレジストリファイルをインポートすると、WindowsレジストリにUnicode文字列がそれにもかかわらず生成されます。
2 ≠ 3
2 µs × 3 = 6 µs
A = À × r²
2進数表現を用いる
hex(1)
型の値に対して
REG_SZ
は標準ではありません。この例は、私が手作業で作成したもので、型が
REG_SZ
また、バッチファイルから生成しやすい非ユニコードエンコーディングのレジストリファイルも使用できます。
しかし、もし 名前 キーや値の中に U+00FF を超える Unicode 文字が含まれている場合は、レジストリファイルのフォーマットである Windowsレジストリエディタ バージョン5.00 レジストリファイルは、リトルエンディアンの16ビットUnicode Transformation Formatを使用してUnicodeエンコードされています。
機能参照 SHRegWriteUSValue について ヘックス ( ? ) ... REG _ ? レジストリタイプテーブルです。
ちなみに。一度書いたUltraEditのスクリプト
GetStringFromRegHex.js
の16進数値を取得するために使用します。
hex(2)
...
REG_EXPAND_SZ
と
hex(7)
...
REG_MULTI_SZ
テキストエディターUltraEditで開いたレジストリファイルで選択された値がテキストで表示されます。
コマンドライン
%SystemRoot%\System32\regedit.exe /a /e "%USERPROFILE%\Desktop\EntireWindowsRegistry.reg"
レジストリファイルフォーマット4を使って、Windowsレジストリ全体をANSIでWindowsデスクトップにエクスポートします。
オプションなしで同じコマンドラインを使用した場合
/a
は、レジストリファイルフォーマット5を使用して、Windowsレジストリ全体をUnicodeでエクスポートします。
関連
-
[解決済み】exec: "gcc": go buildしようとすると%PATH%に実行可能ファイルが見つからない
-
[解決済み] WPCups.exeとは何ですか?[クローズド]です。
-
[解決済み] ssh_dispatch_run_fatal:message authentication code incorrect unable to ssh jupyter notebook on remote server.入力のMACが破損している。
-
[解決済み] terasso libraryでUnknown errorが発生し、vbaを使用してteradataに接続できない。
-
[解決済み] 'ant' は内部コマンドまたは外部コマンドとして認識されません。
-
[解決済み] cmd lineを使用してファイルをZIPする方法は?
-
[解決済み] PowerShellのコマンドラインからWindowsのバージョンを確認する方法
-
[解決済み] バッチプログラムでのechoコマンドの動作について
-
[解決済み] Windowsのバッチファイルでは1行目だけが実行され、コマンドシェルでは3行とも実行されるのはなぜですか?
-
[解決済み] Windowsレジストリにデータを保存するのはいつ、そしてなぜ?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】VMの初期化中にエラーが発生した(java/lang/NoClassDefFoundError: java/lang/Object)
-
[解決済み】Docker for Windowsのエラーです。"ハードウェア支援型仮想化およびデータ実行保護は、BIOSで有効にする必要があります"
-
[解決済み】exec: "gcc": go buildしようとすると%PATH%に実行可能ファイルが見つからない
-
[解決済み] Windowsのフラッシュドライブに_disk_id.podというファイルが表示される
-
[解決済み] NERDTreeで隠しファイル(ピリオドで始まる)を表示するにはどうしたらいいですか?
-
[解決済み] コマンドプロンプトから sqlite - 認識されないコマンド
-
[解決済み] Windowsの能書きは?
-
[解決済み] WindowsのLD_LIBRARY_PATHをシミュレートする方法はありますか?
-
[解決済み] Autohotkey Controlsendコマンドを理解する
-
[解決済み] Windowsでgl3wを設定するには?