• ベストアンサー

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

OSがXPの場合、手操作にてユーザー環境変数は、 システムのプロパティ画面⇒詳細設定タグ⇒環境変数ボタン押下 ⇒ユーザー環境変数の新規ボタンを押下 ⇒変数名、変数値を設定。 といった手順で設定すると思うのですが、 この手操作をバッチファイルのような形で自動設定したいと考えています。 (多数のユーザーに同じ設定を行いたい為、手操作を自動化したい。) (多分レジストリ操作をする必要があると思うのですが実施方法が よく分かりません。) 設定したいのは、 変数名:OVER_RIDE(仮名称) 変数値:C:\Documents and Settings\(ユーザー名) という内容のユーザー環境変数になります。 設定するOSはXPと2000のどちらかになるので、 それぞれ設定方法が異なる場合、 それぞれのバッチファイルを作って適応したいと考えています。 ご回答の程、よろしくお願いいたします。

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

  • ベストアンサー
回答No.2

一時的な環境変数の設定であれば、バッチファイル上での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 ----ここまで

xf710
質問者

補足

ご回答ありがとうございます。 このような書き出し方があったのですね。知らなかったです。 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%" といったような記述で良いでしょうか? 上記のようにした場合、何か問題となりそうな点はないでしょうか?

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.4

WSHを利用してみてはいかがでしょう? http://www.atmarkit.co.jp/fwin2k/win2ktips/460envset/envset.html

xf710
質問者

お礼

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

全文を見る
すると、全ての回答が全文表示されます。
回答No.3

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

xf710
質問者

お礼

どうやら、 C:\Documents and Settings\(ユーザー名)というのは、 %USERPROFILE%を設定すれば環境変数に値が代入されるようです。 自分のやりたい事を実施する事ができました。 ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。
  • kazoo16
  • ベストアンサー率50% (2/4)
回答No.1

set OVER_RIDE="C:\Documents and Settings\%username%" 上をテキストに貼り付けてhoge.batで保存。でいかがでしょうか。 XPと2000どちらでもいけるはずです。

xf710
質問者

補足

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

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • バッチファイルで環境変数が設定されません

    よろしくお願いいたします。 Windows XP Pro の command.com において、バッチファイルの中で set コマンドを使って環境変数を設定しても、バッチから抜けると環境変数の設定ができていません。 バッチ終了後の環境変数は全てバッチ開始前と同じ状態です。 command.com のプロンプトで set コマンドを実行すると、環境変数はセットした内容に変化もしくは追加されます。 cmd.exe ではバッチからでもプロンプトからでも set コマンドで環境変数を操作できます。 なぜ command.com 上のバッチから操作できないのかわからず、不便でかないません。 アドバイスをよろしくお願いいたします。 @echo off set foo=word path=c:\ echo %foo% echo %path% 上記バッチを実行すると word c:\ と表示されますが、set コマンドで確認すると FOO は存在しません PATH=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;... と表示されます。 これはバッチ実行前の値です。

  • 環境変数「%USERPROFILE%」の内容をバッチファイルで設定したい

    以前、以下のような質問をした者です。 <<http://oshiete1.goo.ne.jp/qa2688460.html>> 上記質問を踏まえて自分が作成したファイルは、 ・ファイル名「OVERRIDE_SET.reg」 ・ファイル内容 「 1行目: Windows Registry Editor Version 5.00 2行目: [HKEY_CURRENT_USER\Environment] 3行目: "OVER_RIDE"="%USERPROFILE%" 」 という内容でユーザー環境変数に  変数名:OVER_RIDE(仮名称)  変数値:%USERPROFILE%      (値には↑の文字列が入るが表示は「C:\Documents and Settings\(ユーザー名)」) を設定できました。 しかし、 変数値が「%USERPROFILE%」では、あるソフトを動かす際にエラーになってしまいました。 手操作で変数値「%USERPROFILE%」を「C:\Documents and Settings\(ユーザー名)」と「%USERPROFILE%」が示す文字列を実際に打ち込んだところ エラーは解消できました。 バッチファイルにて「%USERPROFILE%」の部分を、 「C:\Documents and Settings\(ユーザー名)」にするには どうすればよいでしょうか? 実行環境はOS、WindowsXPかWindows2000を予定しています。

  • 環境変数を埋め込むバッチファイルを作成できるか

    こんにちは。 Windows XP>コントロールパネル>システム>詳細>環境変数にて 以下の項目を追加するよう社員に案内したいのですが、パスが奥深くてややユーザにとって負担です。 変数名:sap_cocdepage 変数値:8000 ユーザが間違うかもしれないという危険もあり、可能ならバッチファイルを作成し、実行だけで追加できる方法で運用したいと思います。 どのようなコードで作成すればよいか、おわかりの方いらしたらご教示いただくと幸いです。

  • システム環境変数の削除の自動化(バッチ化)

    ●質問内容 システム環境変数を変更する場合(WindowsXP時)、 「スタート」⇒「設定」⇒「コントロールパネル」⇒「システム」の 「システムのプロパティ」画面の「詳細設定」タグ内の「環境変数」ボタンを 押下して「環境変数」画面にて新規/編集/削除を実施すると思います。 システム環境変数の削除を行うにあたり上記一連操作をバッチファイル 等の単純操作にて実施したいと考えているのですがどのようにすれば実現できるでしょうか? 条件は以下の通りです。 ・OSはWindowsXPもしくはWindows2000。 ・削除するシステム環境変数名は決まっている。 ・ログオン/ログインや再起動は行わずに削除情報を反映させたい。 ●質問内容補足 自分で調べた範囲ではシステム環境変数の新規/編集であれば Windows2000のリソースキット中のsetx.exeというプログラムを 利用すれば可能だということが分かりました。 このHPで言っているように削除もバッチ処理で行いたいのです。 参考HP<<http://chinpindo.blog11.fc2.com/blog-entry-61.html#more>> お手数ですがご回答頂けると幸いです。 よろしくお願いいたします。

  • バッチファイルにおける環境変数分の繰り返し処理

    こんにちは。 現在、CSVから読み込んだ値(ファイル名)を環境変数に格納し、その環境変数に合致したファイルの移動を行う。というバッチファイルを作成しています。 作成にあたってCSVからのファイル名の読み込み及び、環境変数に全てのファイル名を1個ずつ格納する事(a1=AAやa2=BBなど)には成功したのですが、その後のファイルを移動するコマンドが上手く書けません。 ちなみに move "*%a1%*.txt" "C:\" move "*%a2%*.txt" "C:\" 上記のように1個ずつ手動で環境変数を指定しての移動は出来るのですが、その日によって 取得するファイル名(環境変数の数)が異なってくる為、可能であれば自動で環境変数の数を取得し環境変数分、1個ずつ環境変数からファイル名を読み込み、そのファイルを移動させる。と言ったバッチを組みたいのです。 よろしくお願い致します。 ------------------------------------------------------------------ set count=1 for /f %%i in (test.csv) do @call :add %%i goto PROCESS1 :add set a%count%=%1 set /A count+=1 goto :EOF :PROCESS1 ※移動するコマンド ------------------------------------------------------------------

  • Javaの環境変数設定について。

    はじめまして。OSはWindowsXPでJavaの勉強をしようと思い、「JDK 5.0 Update 16」をインストールし、環境変数の設定を行ったのですが、PATHにもともと環境変数があったのに、間違えて新しい環境変数に変更してしまいました。コマンドプロンプトで「jsvac」コマンドを打ち込んだら C:\Documents and Settings\takumi>javac 'javac' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 と出ました。 環境変数を元に戻す方法はないのでしょうか? どなたかご教授お願いします。

    • ベストアンサー
    • Java
  • 環境変数

    環境変数って何でしょうか?  アプリケーションプログラムやバッチプログラムに対して、ユーザーが設定する変数。環境変数の設定には、MS-DOSのSETコマンドを使用する。COMMAND.COM自身が利用する環境変数としては、COMSPEC、PATHがある。 とありますが意味がわかりません。 「ユーザーが設定する変数」の「変数」って? 環境変数が何なのか教えて頂けないでしょうか。 よろしくお願いします。

  • システム環境変数と、ユーザー環境変数。

    こんにちわ。 昨夜からちょっと困ってパニックになっています。 1から書いていきます。 読みにくかったら、申し訳ございません。 コンパイルしたJanken.classが、 C:\java>java Janken で作動せず、 java.lang.NoClassDefFoundErrorのエラーが出ました。 そこで、参考書を見て環境変数に問題があるということなので、 環境変数を触ったのですが、それでも上手く行かずネットで検索をかけて調べたところ、 "システム環境変数"と"ユーザー環境変数"の設定を変えました。(osは、XPです。) それ以来、 ----------------- C:java>java Janken 'java'は、内部コマンドまたは、外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 C:\java ---------------- と、なります。 コンパイルも出来ません。 「システム環境変数には、触れてはいけない」と 検索した先のページには、書かれていまして、 ユーザー環境変数と間違って、システム環境変数を変えていたことになります。 元に戻すには、PCの初期化が必要なのでしょうか? また、参考書の通りコマンドプロンプトに打つとこう表示されます。 ----------- C:\Documents and Settings\Owner>set CLASSPATH=%CLASSPATH%;c:\java\bin C:\Documents and Settings\Owner>echo %CLASSPATH% %CLASSPATH% C:\Documents and Settings\Owner> ------------- また、JAVAの入ってるフォルダは、 C:\JAVAで、ローカルディスクCの中です。 JAVAフォルダの中は、j2sdk-1_4_0-doc-jaフォルダと、J2SEフォルダ、 Janken.classがあります。 もう何が正しくて、何が誤りなのかもわかりません。 どうか、よろしくお願いいたします・・・・。

    • ベストアンサー
    • Java
  • バッチファイルでの環境変数のチェック

    バッチファイル(.bat)内で"エラーを出さずに" 環境変数の有無を確認する方法はありますか?

  • 環境変数設定で

    senの環境変数を設定する場合、マイコンピュータを右クリックして、環境変数選択して、SEN_HOMEをつくり、 そこにC:\sen-1.2.2.1としました。 次にpathに%SEN_HOME%\binとしました。  そしてコマンドプロントでsh sen.shとしても'sh' は、「内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません。」とエラーがでます。  antは同じ要領でできたのですが・・・

    • ベストアンサー
    • Java