- ベストアンサー
batでレジストリキーから読み取った値をセットする方法
.batで、レジストリから取得した値をセットする方法(記述)はどのようにしたら良いでしょうか? 具体的には、パスが設定されている値を取得して、そのパスにあるフォルダを削除したいです。宜しくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
まず、レジストリの話をするときは、キー、値、データという用語を正しく使ってください。regeditでフォルダに見えるものが「キー」、右ペインで名前欄に出ているものが「値」、データ欄に出ているものが「データ」です。これがわかってないとregeditで検索もできません。 >キー名や取得した値のデータに空白が含まれている場合はどのように指定すればよいでしょうか データに空白が含まれていても先頭以外なら大丈夫です。 キーは読み飛ばされる別の行(skip=4)なので関係なし。 値に空白がある場合は、その数に応じて tokens=2* の数字を増やしてください。
その他の回答 (1)
- notnot
- ベストアンサー率47% (4900/10358)
回答No.1
WinXP以降ならREGコマンドがあるので、 for /f "skip=4 tokens=2*" %%A in ('reg query キー名 /v 値名') do set FILE=%%B で取得できます。 REGコマンドの書式は REG /? で。
質問者
補足
キー名や取得した値のデータに空白が含まれている場合はどのように指定すればよいでしょうか?宜しくお願いいたします。
お礼
for /f "skip=4 tokens=3*" %%A in ('reg query HKEY_LOCAL_MACHINE\SOFTWARE\TASI /v Dir') do rmdir /S /Q "%%A %%B\A1" で思うような処理ができました。 ありがとうございました。
補足
値、データを勘違いしていました。ご指摘ありがとうございます。 たびたびすみません。値Dir /データE:\T T の構成で E:\T TにあるフォルダA1 を削除しようと、以下を実行したところ削除されないため、tokens=2* の数字を増やしました。しかし、削除されません。どのように変更すればよいでしょうか? 宜しくお願いいたします。 for /f "skip=4 tokens=2*" %A in ('reg query HKEY_LOCAL_MACHINE\SOFTWARE\TASI /v Dir') do rmdir /S /Q %A\A1