指定キー以下のレジストリキーそれぞれに対して繰り返し処理を行う
Loop, RootKey [, Key, IncludeSubkeys?, Recurse?]
引数名 | 説明 |
---|---|
RootKey |
「HKEY_LOCAL_MACHINE」「HKEY_USERS」「HKEY_CURRENT_USER」「HKEY_CLASSES_ROOT」「HKEY_CURRENT_CONFIG」のどれか。「HKLM」のような短縮名も可能。 リモートのレジストリにアクセスしたい場合、「\\workstation01:HKEY_LOCAL_MACHINE」のようにコンピュータ名と「:」をつける。 |
Key |
親キー名。 例えば「Software\SomeApplication」。 省略時はRootKey以下のキーが処理される。 |
IncludeSubkeys? |
「0」なら、値のみを処理。 「1」なら、値とサブキー。 「2」なら、サブキーのみ。 デフォルトは「0」。 |
Recurse? |
「0」なら、サブキー内のキーは対象にならない。 「1」なら、サブキー内のキーも対象になる。 デフォルトは「0」。 |
対象となっているキーの情報は、下記の変数として参照できる。
A_LoopRegName |
対象となっている値やサブキーの名前。 RegEdit.exeで「(規定)」となっている値の場合、空になる。 |
A_LoopRegType |
サブキーの場合「KEY」となる。 値の場合、「REG_SZ」「REG_EXPAND_SZ」「REG_MULTI_SZ」「REG_DWORD」「REG_QWORD」「REG_BINARY」「REG_LINK」「REG_RESOURCE_LIST」「REG_FULL_RESOURCE_DESCRIPTOR」「REG_RESOURCE_REQUIREMENTS_LIST」「REG_DWORD_BIG_ENDIAN」のどれかになる。 これらのどれでも無いタイプのキーだった場合、空になる。 |
A_LoopRegKey | 対象となっているルートキーの名前。(「HKEY_LOCAL_MACHINE」「HKEY_USERS」「HKEY_CURRENT_USER」「HKEY_CLASSES_ROOT」「HKEY_CURRENT_CONFIG」). リモートのレジストリでも、コンピュータ名は含まない。 |
A_LoopRegSubKey | 対象となっている項目のサブキーのパス。 |
A_LoopRegTimeModified | キーの最終更新日時。YYYYMMDDHH24MISS形式。 NT系で、対象がサブキーの場合以外は空。 |
下記のコマンドをレジストリループ内で実行する場合、対象キーを省略できる。
RegRead, OutputVar |
現在の項目の値を変数に読み出す。 項目がサブキーだった場合、ErrorLevelが「1」になり、OutputVarは空になる。 |
RegWrite [, Value] |
現在の項目に値を書き込む。 Valueが省略された場合、値は「0」もしくは空になる。 項目がサブキーだった場合、ErrorLevelが「1」になる。 |
RegDelete |
項目を削除する。 項目がサブキーだった場合、以下の全ての項目が削除される。 |
その他の仕様は、通常のLoopと同様。
リモートマシンのレジストリの扱いに関する説明は割愛する。
Loop, Break, Continue, Blocks, RegRead, RegWrite, RegDelete
Loop, HKEY_CURRENT_USER, Software\Microsoft\Windows, 1, 1 { if a_LoopRegType = key value = else { RegRead, value if ErrorLevel <> 0 value = *error* } MsgBox, 4, , %a_LoopRegName% = %value% (%a_LoopRegType%)`n`nContinue? IfMsgBox, NO, break }