- 締切済み
コマンドプロンプト 全角を含んだ文字列の抽出
●ほしい文字列: 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 全角を含んでいると以降のスペース以下が取得できないようなのですが 全角の有無にかかわらず取得できる方法はないでしょうか? 宜しくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- notnot
- ベストアンサー率47% (4900/10358)
少なくとも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。
- Tacosan
- ベストアンサー率23% (3656/15482)
reg が動かなかったのでシミュレートしただけだけど, 手元の Windows XP Professional SP2 ではそんなことはないなぁ. ちなみに %C には何が入ってますか?
補足
%C とは何でしょうか?すみません。分かりません。 ちなみに、「a b」フォルダにファイルが存在するかどうかは関係ないようです。
お礼
reg queryにはバグなのですね。。。教えていただいた方法で全角文字も出力できました。しかし以下のように不要な文字("Dir"="・\・")まで含まれまれるため、断念します。。ありがとうございました!! ●ほしい文字列: C:\Program Files\全体\a b ●上記ケースfile2で得られる文字列 "Dir"="C:\\Program Files\\全体\\a b"