.REGファイルでREG_EXPAND_SZエントリを指定するにはどうすればよいですか?


8

バッチスクリプトと.REGファイルを使用して、いくつかのカスタムサービスをセットアップしようとしています。ほとんどのキーは適切にセットアップされていますが、いくつかのサービス(通常は複数文字列)にDependOnServiceキーを設定する必要があります。.REGファイルからこのキーを設定することは可能ですか、それとも手動で入力する必要がありますか?

回答:


10

.REGファイルのREG_MULTI_SZデータは、16進数でエンコードする必要があります。コンテンツが変更されない場合は、データを使用してレジストリにダミーアイテムを作成し、エクスポートして、ニーズに合わせて調整できます。

変更された場合、おそらくregWindowsに含まれているコマンドを使用して追加する方がはるかに簡単です。これを行うには、次の形式でregを呼び出します。

reg add <KEY> /v <NAME> /t REG_MULTI_SZ /d <DATA> /s <SEPERATOR>

セパレータスイッチはオプションです。使用しない場合、書き込まれる文字列は、ヌル文字(\0)のエスケープシーケンスで区切る必要があります。たとえば、という項目を追加するFlairにはHKEY_LOCAL_ MACHINE\SOFTWARE\WhizBang\Excite-O-Rama、文字列ではfoobarbazあなたが実行します:

reg add HKEY_LOCAL_ MACHINE\SOFTWARE\WhizBang\Excite-O-Rama /v Flair /t REG_MULTI_SZ /d foo\0bar\0baz

代わりにコンマでデータを分離するには、次を実行します。

reg add HKEY_LOCAL_ MACHINE\SOFTWARE\WhizBang\Excite-O-Rama /v Flair /t REG_MULTI_SZ /d foo,bar,baz /s ,

詳細については、Microsoftのregコマンドに関するドキュメントを参照してください。


3
素晴らしい回答(.batファイルのreg代わりにコマンド付きのファイルを使用.reg)が、質問がREG_EXPAND_SZについての質問である場合、なぜREG_MULTI_SZについて話すのですか?
ノースワップ

1

DWORD = dword:展開可能な文字列= hex(2):マルチ文字列= hex(7):

DWORDは32ビットの符号なし整数(範囲:10進数で0〜4294967295)です。レジストリでは、DWORDは常に0xで始まります。レジストリでは、DWORDSには常に0xに続く8桁があります。これは10進数または16進数形式で、1000は0x00001000または0x000003e8として記述できます。

DWORDSは、数字の0〜9のみを使用できます。ACSII 1000では、すべての種類の文字列は常にASCIIを使用し、31,30,30,30としてのみ記述できます。文字列データ型の場合、ASCIIは知らないうちにバックグラウンドで動作します。コンピューターは1と0のみを理解するためです。Expandable StringおよびMulti Stringデータ型の場合、これらは、コンマと16進ゼロで区切られた16進形式の一連のASCIIコードとしてエントリを保存します。したがって、1000の展開可能な文字列は、hex(2):31,00,30,00,30,00,30,00になります。

それでは、%PROGRAMFILES%を拡張可能な文字列に変換しましょう。まず、これをダウンロードします:https : //hotfile.com/dl/244097278/55aa086/ASCII_2_HEX_Conversion_Tool.7z.html

それを最新のブラウザで開きます。ASCIIボックスに%PROGRAMFILES%を入力し、エンコードを選択します。これにより、%25%50%52%4F%47%52%41%4D%46%49%4C%45%53%25がテキストエディターに貼り付けられ、最初の%が最後に移動します。置換コマンドを選択し、すべての「%」を見つけて「、00、」に置き換えます。最後のコンマを削除します。取得する必要があります:25,00,50,00,52,00,4F、00,47,00,52,00,41,00,4D、00,46,00,49,00,4C、00,45、 00,53,00,25,00そして最後に、hex(2):25,00,50,00,52,00,4F、00,47,00,52,00,41,00,4D、00,46 、00、49、00、4C、00、45、00、53、00、25、00

できた

好奇心盛な16進レジストリエントリをASCIIに変換しようとして、惨めな失敗をしたことがありますか。このレッスンには、暗号化されていない16進コードのレジストリエントリをリバースエンジニアリングするために必要なすべての知識が含まれています。楽しむ!


ホットファイルリンクは、7zアーカイブであり、htmlページ(コンバーターを含む)が内部に保存されています。なぜWebページ自体にリンクしないのですか?
ジョンベンシン

リンクの腐敗を避けるために、回答にすべての関連情報を投稿してください。質問への回答方法の
50-3
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.