質問 |
||
| QNo.3969715 | コマンドプロンプト 全角を含んだ文字列の抽出 | |
|---|---|---|
| 質問者:indigo45kk |
●ほしい文字列: 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 全角を含んでいると以降のスペース以下が取得できないようなのですが 全角の有無にかかわらず取得できる方法はないでしょうか? 宜しくお願いいたします。 |
|
困り度:
|
||
| 質問投稿日時: 08/04/23 13:17 |
||
回答 |
|
| ANo.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。 |
|---|---|
| 回答者:notnot | |
| 種類:回答 どんな人:専門家 自信:自信あり |
|
| 回答日時: 08/04/24 00:03 |
|
| |
| この回答へのお礼 | reg queryにはバグなのですね。。。教えていただいた方法で全角文字も出力できました。しかし以下のように不要な文字("Dir"="・\・")まで含まれまれるため、断念します。。ありがとうございました!! ●ほしい文字列: C:\Program Files\全体\a b ●上記ケースfile2で得られる文字列 "Dir"="C:\\Program Files\\全体\\a b" |
回答 |
|
| ANo.1 | reg が動かなかったのでシミュレートしただけだけど, 手元の Windows XP Professional SP2 ではそんなことはないなぁ. ちなみに %C には何が入ってますか? |
|---|---|
| 回答者:Tacosan | |
| 種類:アドバイス どんな人:一般人 自信:参考意見 |
|
| 回答日時: 08/04/23 13:57 |
|
| |
| この回答への補足 | %C とは何でしょうか?すみません。分かりません。 ちなみに、「a b」フォルダにファイルが存在するかどうかは関係ないようです。 |
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |