みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ユーザー環境変数をバッチファイルのような形で設定するには?

OSがXPの場合、手操作にてユーザー環境変数は、
システムのプロパティ画面⇒詳細設定タグ⇒環境変数ボタン押下
⇒ユーザー環境変数の新規ボタンを押下
⇒変数名、変数値を設定。
といった手順で設定すると思うのですが、
この手操作をバッチファイルのような形で自動設定したいと考えています。
(多数のユーザーに同じ設定を行いたい為、手操作を自動化したい。)
(多分レジストリ操作をする必要があると思うのですが実施方法が
よく分かりません。)

設定したいのは、
変数名:OVER_RIDE(仮名称)
変数値:C:\Documents and Settings\(ユーザー名)
という内容のユーザー環境変数になります。

設定するOSはXPと2000のどちらかになるので、
それぞれ設定方法が異なる場合、
それぞれのバッチファイルを作って適応したいと考えています。

ご回答の程、よろしくお願いいたします。

投稿日時 - 2007-01-23 01:09:54

QNo.2688460

すぐに回答ほしいです

質問者が選んだベストアンサー

一時的な環境変数の設定であれば、バッチファイル上でのSET文で良いと思いますが、
恒久的に設定するつもりで、それを自動化したいなら、レジストリの書き換えが必要でしょうね。
さほど難しくはないので、プログラムを書ける人なら簡単なんですが・・

手っ取り早いのは、まず1台だけ環境変数を手動で設定し、REGEDITで、
HKEY_CURRENT_USER\Environment の配下だけ、キーの書き出しを行う。
そのレジストリファイル(テキスト)のうち、要らない行を削って、
"OVER_RIDE"関連だけにする。
そのレジストリファイルを、各PCへ持ち込んで、ダブルクリックすると
ロードできます。

ちなみに、変更後のレジストリファイルの中は、こんな感じ。(スペースが詰まるので分かりにくいけど)

----ここから
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Environment]
"OVER_RIDE"=hex(2):43,00,3a,00,5c,00,44,00,6f,00,63,00,75,00,6d,00,65,00,6e,00,74,\
00,73,00,20,00,61,00,6e,00,64,00,20,00,53,00,65,00,74,00,74,00,69,00,6e,00,\
67,00,73,00,5c,00,68,00,6f,00,67,00,65,00,68,00,6f,00,67,00,65,00,00,00

----ここまで

投稿日時 - 2007-01-23 03:14:08

補足

ご回答ありがとうございます。

このような書き出し方があったのですね。知らなかったです。

1点追加質問なのですが、
手動でこの操作を行った場合、
設定する変数値 C:\Documents and Settings\(ユーザー名)
の(ユーザー名)部分が各々のユーザー名にならないかと思います。
(Ex.
「手操作でC:\Documents and Settings\satou」と手操作で設定して
そのまま記述内容をバッチにして使用した場合、バッチ利用者は全て
ユーザー名がsatouになってしまう。
各々のユーザー名に対応したような環境変数を設定させたい。


この場合、
>Windows Registry Editor Version 5.00
>[HKEY_CURRENT_USER\Environment]
>"OVERRIDE"="C:\\Documents and Settings\\%USERNAME%"
といったような記述で良いでしょうか?
上記のようにした場合、何か問題となりそうな点はないでしょうか?

投稿日時 - 2007-01-23 10:41:37

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

WSHを利用してみてはいかがでしょう?

http://www.atmarkit.co.jp/fwin2k/win2ktips/460envset/envset.html

投稿日時 - 2007-01-23 22:50:35

お礼

回答ありがとうございます。

このような方法もあるのですね。
色々検討してみてこの方法でも良いか確認したいと思います。

投稿日時 - 2007-01-24 10:03:58

レジストリの登録値が、%USERNAME%となるように登録すれば、
実際に利用する時点では、変数展開後の値が参照されます。

投稿日時 - 2007-01-23 14:20:50

お礼

どうやら、
C:\Documents and Settings\(ユーザー名)というのは、
%USERPROFILE%を設定すれば環境変数に値が代入されるようです。

自分のやりたい事を実施する事ができました。
ありがとうございます。

投稿日時 - 2007-01-24 10:12:25

ANo.1

set OVER_RIDE="C:\Documents and Settings\%username%"

上をテキストに貼り付けてhoge.batで保存。でいかがでしょうか。
XPと2000どちらでもいけるはずです。

投稿日時 - 2007-01-23 01:26:43

補足

ご回答ありがとうございます。

今回の場合、恒久的に環境変数を利用したい為、
一時的な設定になってしまうsetでは条件を満たさない事になります。
質問が分かり辛くて申し訳ありません。

投稿日時 - 2007-01-23 09:29:32

あなたにオススメの質問