Windowsコマンド(reg query)(その6)


アニメ『ぼくたちは勉強ができない』

理系の天才は国語がてんでダメ。文系才女は数学がダメ。すごく普通のことのように思えます。全部を得ようとしても学習時間は限られてるので、得意分野を伸ばす方が最善ですよね。最善を繰り返した結果、天才になったんだと思います。

続きです。

まず空行を削除。

PS C:\Users\takk> reg query hklm | findstr HK | % {echo $_}
HKEY_LOCAL_MACHINE\BCD00000000
HKEY_LOCAL_MACHINE\HARDWARE
HKEY_LOCAL_MACHINE\SAM
HKEY_LOCAL_MACHINE\SECURITY
HKEY_LOCAL_MACHINE\SOFTWARE
HKEY_LOCAL_MACHINE\SYSTEM
PS C:\Users\takk>

うまくいったので、reg queryに変えて実行。

PS C:\Users\takk> reg query hklm | findstr HK | % {reg query $_} | wsl head
エラー: アクセスが拒否されました。
エラー: アクセスが拒否されました。

HKEY_LOCAL_MACHINE\HARDWARE\ACPI
HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION
HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP
HKEY_LOCAL_MACHINE\HARDWARE\RESOURCEMAP

HKEY_LOCAL_MACHINE\SAM\SAM

HKEY_LOCAL_MACHINE\SOFTWARE\Classes
HKEY_LOCAL_MACHINE\SOFTWARE\Clients
PS C:\Users\takk>

あ、忘れてました。アクセス拒否が出てたんですね。
まあ再帰表示に関係ないので今回は無視します。

では、再帰的実行するためのプログラミング。
変数に最初のリストである”HKLM”を代入。

PS C:\Users\takk> $aa="HKLM"

実行すると、

PS C:\Users\takk> reg query $aa

HKEY_LOCAL_MACHINE\BCD00000000
HKEY_LOCAL_MACHINE\HARDWARE
HKEY_LOCAL_MACHINE\SAM
HKEY_LOCAL_MACHINE\SECURITY
HKEY_LOCAL_MACHINE\SOFTWARE
HKEY_LOCAL_MACHINE\SYSTEM
PS C:\Users\takk>

ちゃんと動きますね。
コマンド実行の戻り値を変数に代入するには、=の右にコマンドを書くだけです。

PS C:\Users\takk> $bb=reg query $aa

中身を確認。

PS C:\Users\takk> $bb

HKEY_LOCAL_MACHINE\BCD00000000
HKEY_LOCAL_MACHINE\HARDWARE
HKEY_LOCAL_MACHINE\SAM
HKEY_LOCAL_MACHINE\SECURITY
HKEY_LOCAL_MACHINE\SOFTWARE
HKEY_LOCAL_MACHINE\SYSTEM
PS C:\Users\takk>

続く。

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA