[前の記事]« テキストファイルに「行番号」を振るには
[次の記事]フォルダを圧縮するコマンド »

関連オンラインソフト配布サイト:
Vector>ダウンロード(top) |>MS-DOSまたは汎用 | >WindowsVista/XP/2000/NT

▲カテゴリー「REG,SCANREG…レジストリとコマンド・プロンプト」索引へ
▲カテゴリー「SET, PATH, %環境変数%」索引へ

「reg query」で取得した値を環境変数にセットするには

937.
「reg query」で取得した値を環境変数にセットするには
2006年01月15日(日) 17時37分
butagorilla
●DOS/Windowsのバージョン↓

はじめて質問させていただきます。
バッチファイルで、レジストリキーより値を読み取り、
その値を、環境変数にセットしたいのですが、
うまくいきません。ご教授願います。

○ちなみに以下のようなコマンドでは、うまくいきません。

for /d %%A in ("%userprofile%\Local Settings\Application Data\Identities\*") do set GUID=%%~nA
for /f "skip=4 tokens=1,2*" %%R in ('reg query "HKCU\Identities\%GUID%\Software\Microsoft\Outlook Express\5.0" /v "Store Root"') do set STOREROOT=%%~T
echo %STOREROOT%


○regコマンド単体での結果

! REG.EXE VERSION 3.0

HKEY_CURRENT_USER\Identities\{5F882E9E-C34A-4741-AA7C-6B24199EBC43}\Software\Microsoft\Outlook Express\5.0
    Store Root REG_SZ  D:\abcde(この値<D:\abcde>を取得したい)
以上、よろしくお願いします。
938.
Re:「reg query」で取得した値を環境変数にセットするには
2006年01月16日(月) 09時58分
ラシャン
WindowsXP Proで試してみましたが、値の前に「REG_EXPAND_SZ 」
と入っていたので、その部分だけ削除してみてはどうでしょう?
ちなみに、REG_EXPAND_SZの後ろの空白はスペースではなくTabです。

for /d %%A in ("%userprofile%\Local Settings\Application Data\Identities\*") do set GUID=%%~nA
for /f "skip=4 tokens=1,2*" %%R in ('reg query "HKCU\Identities\%GUID%\Software\Microsoft\Outlook Express\5.0" /v "Store Root"') do set STOREROOT=%%~T
echo %STOREROOT:REG_EXPAND_SZ =%
941.
Re:「reg query」で取得した値を環境変数にセットするには
2006年01月16日(月) 16時12分
otn
>WindowsXP Proで試してみましたが、値の前に「REG_EXPAND_SZ 」
>と入っていたので、その部分だけ削除してみてはどうでしょう?

うまく行かなさがそういうことなんだったら、単に tokens=1,3* にすればいいのでは?

「うまくいきません。」の具体的内容が書いてないのでそういうことなのかどうかわかりませんが。
947.
Re:「reg query」で取得した値を環境変数にセットするには
2006年01月20日(金) 00時20分
こぶん
本題と異なりますが reg query にはバグがあります。
値名にASCII文字以外の文字が使用されている場合、該当する値をクエリするとパイプへ出力するとおかしなことになります。おそらく、文字数とバイト数をパイプへ出力する場合にregコマンド作成者が混同しているものと考えられます。
このためレジストリ操作を行なうバッチスクリプトはWSH等で行なうことをおすすめします。
なお、Microsoftへのバグは昨年10月に報告済みです。

○画面出力の場合
D:\>reg query HKCU\test

! REG.EXE VERSION 3.0

HKEY_CURRENT_USER\test
    テスト0123456789    REG_SZ  0123456789てすと0123456789
    <名前なし>  REG_SZ  てすと
    a   REG_SZ  b


○パイプへ出力の場合
D:\>reg query HKCU\test | more

! REG.EXE VERSION 3.0

HKEY_CURRENT_USER\test
    テスト0123456789    REG_0123456789てすと0123456
    <名前なし>  REGて・
    a   REG_SZ  b
957.
Re:「reg query」で取得した値を環境変数にセットするには
2006年01月24日(火) 01時48分
otn
>本題と異なりますが reg query にはバグがあります。
>値名にASCII文字以外の文字が使用されている場合、該当する値をクエリするとパイプへ出力するとおかしなことになります。おそらく、文字数とバイト数をパイプへ出力する場合にregコマンド作成者が混同しているものと考えられます。
>このためレジストリ操作を行なうバッチスクリプトはWSH等で行なうことをおすすめします。

「パイプが駄目なら一旦ファイルに書けばいい」と思ったんですが、パイプだけじゃなくてファイルへのリダイレクト書き込みもreg queryだと駄目ですね。
reg export だと大丈夫ですが、解析が面倒そう。
974.
Re:「reg query」で取得した値を環境変数にセットするには
2006年01月25日(水) 20時34分
otn
>>本題と異なりますが reg query にはバグがあります。
>>値名にASCII文字以外の文字が使用されている場合、該当する値をクエリするとパイプへ出力するとおかしなことになります。

2003Serverを使う機会があったのでやってみました。

新しい値 #1 REG_SZ あいうえおaiueo

が |more してもちゃんと表示されました。バグは解消されているようです。
うちのXPはまだSP1ですがSP2でも直ってないとすると、果たして直るのか?

2000の for /f … ('コマンド') の日本語処理のバグはXPで直っているのにそのままですもんね。
975.
Re:「reg query」で取得した値を環境変数にセットするには
2006年01月25日(水) 21時09分
こぶん
>2003Serverを使う機会があったのでやってみました。
>
>新しい値 #1 REG_SZ あいうえおaiueo
>
>が |more してもちゃんと表示されました。バグは解消されているようです。

おお、、なんだよMicrosoftわかってて更新してくれてなかったのか。やはりこういった日本語まわりのバグを放置しているところを見るとMSとしてはバッチ処理はcmd/batスクリプトじゃなくてWSHスクリプトでやりなさいということなんでしょうね。
982.
Re:「reg query」で取得した値を環境変数にセットするには
2006年02月01日(水) 14時24分
ラシャン
>>WindowsXP Proで試してみましたが、値の前に「REG_EXPAND_SZ 」
>>と入っていたので、その部分だけ削除してみてはどうでしょう?
>
>うまく行かなさがそういうことなんだったら、単に tokens=1,3* にすればいいのでは?

確かに^^; ボケてました・・・
 


 

937.「reg query」で取得した値を環境変数にセットするには butagorilla 06/01/15(日) 17:37
938.Re:「reg query」で取得した値を環境変数にセットするには ラシャン 06/01/16(月) 09:58
941.Re:「reg query」で取得した値を環境変数にセットするには otn 06/01/16(月) 16:12
982.Re:「reg query」で取得した値を環境変数にセットするには ラシャン 06/02/01(水) 14:24
947.Re:「reg query」で取得した値を環境変数にセットするには こぶん 06/01/20(金) 00:20
957.Re:「reg query」で取得した値を環境変数にセットするには otn 06/01/24(火) 01:48
974.Re:「reg query」で取得した値を環境変数にセットするには otn 06/01/25(水) 20:34
975.Re:「reg query」で取得した値を環境変数にセットするには こぶん 06/01/25(水) 21:09
 
 


カテゴリー「REG,SCANREG…レジストリとコマンド・プロンプト」索引へ
カテゴリー「SET, PATH, %環境変数%」索引へ

 

カテゴリー一覧

FPCU/FPCDIY QUICK LINK online
この上の各ジャンル名をクリックすると、下のウィンドウが切り替わります▼


=リンク集のインデックスはこちら=

資料書籍

About

2006年01月15日 14:56に投稿されたエントリーのページです。

ひとつ前の投稿は「テキストファイルに「行番号」を振るには」です。

次の投稿は「フォルダを圧縮するコマンド」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

This site is powered by Six Apart
Movable Type 3.33-ja
このブログについて | 運営:有限会社メディアポート