プロが教えるわが家の防犯対策術!

●ほしい文字列:
C:\Program Files\全体\a b
●reg quaryの結果:
! REG.EXE VERSION 3.0
HKEY_LOCAL_MACHINE\SOFTWARE\goo
Dir REG_SZ C:\Program Files\本体\a b
●試したコマンド:
for /f "skip=2 tokens=2*" %A in ('reg query %REGNAME% /v Dir') do echo %B
●結果:C:\Program Files\全体\a
全角を含んでいると以降のスペース以下が取得できないようなのですが
全角の有無にかかわらず取得できる方法はないでしょうか?
宜しくお願いいたします。

A 回答 (2件)

少なくともXPまでのreg queryにはバグがあり、全角文字を正しく処理できません(Vista未確認)。

おそらく文字数計算を間違えている。

reg query キー名 > file
とファイルに書いても駄目です。後ろが欠けます。

reg export キー名 file
type file | findstr "なにか" > file2
for /f "tokens=?*" %A in (file2) do echo %B

のようにしてfileを見てfindstrの文字列やtokensの数字を設定してください。
なお、fileはユニコードになるので、forやfindstrでは直接読めません。typeやfindならOK。
    • good
    • 0
この回答へのお礼

reg queryにはバグなのですね。。。教えていただいた方法で全角文字も出力できました。しかし以下のように不要な文字("Dir"="・\・")まで含まれまれるため、断念します。。ありがとうございました!!

●ほしい文字列:
 C:\Program Files\全体\a b
●上記ケースfile2で得られる文字列
 "Dir"="C:\\Program Files\\全体\\a b"

お礼日時:2008/04/24 18:42

reg が動かなかったのでシミュレートしただけだけど, 手元の Windows XP Professional SP2 ではそんなことはないなぁ.


ちなみに %C には何が入ってますか?

この回答への補足

%C とは何でしょうか?すみません。分かりません。
ちなみに、「a b」フォルダにファイルが存在するかどうかは関係ないようです。

補足日時:2008/04/23 14:17
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A