マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

以下の方法がある

詳細

SET、SETX

SET、SETXがあるので、コチラも注意する

SET

SETコマンドで設定した変数の値は、

  • そのコマンドプロンプト内(およびそこから起動したプロセス)でのみ有効
  • 別のプロセスやユーザからは参照できないし、変更することもできない。

SETX

SETXコマンドで設定した変数の値は、

  • 既定ではユーザー環境変数(レジストリ)に設定される。
  • 環境変数設定なので、読み込みにはプロセスの再起動が必要になる。
  • システム環境変数を設定するには、管理者実行で/mオプションを使用する。
  • 削除には、レジストリ直接編集が必要になる(のが(Linuxユーザからすると)?らしい。

REG_SZ、REG_EXPAND_SZ

REG_SZ、REG_EXPAND_SZ の扱いを誤ると壊すので注意。

  • データ型
  • レジストリ
  • .NET Framework
  • 説明

REG_SZ

  • 文字列値
  • REG_SZ
  • System.String
  • nullで終わる Unicode文字列値

REG_EXPAND_SZ

  • 展開可能な文字列値
  • REG_EXPAND_SZ
  • System.String
  • 環境変数(例えば「%USERNAME%」や「%SystemRoot?%」など)を含むnullで終わるUnicode文字列|

システム / ユーザ環境変数

同じ変数があった場合、

システム環境変数

全ユーザから参照可能。

ユーザ環境変数(優先)

当該ユーザから参照可能。

参考

  • 環境変数あれこれ re-Think things
    https://togarasi.wordpress.com/2011/12/30/%E7%92%B0%E5%A2%83%E5%A4%89%E6%95%B0%E3%81%82%E3%82%8C%E3%81%93%E3%82%8C/
    • GetEnvironmentVariable?() と SetEnvironmentVariable?() ですが、
      • これらは、プロセス内で有効な環境ブロックに アクセスするための API であり、
      • レジストリにエントリーされている環境変数の値を参照/設定するものではありません。
    • レジストリで環境変数を変更した場合ですが、ユーザーは一旦 Windows からログオフしてから、 再度、ログオンすることで確実に更新/変更されますが、
      一部のアプリケーションは、特定のウィンドウメッセージ (WM_SETTINGCHANGE)を受信すると、再度、環境ブロックを読みだします。
    • EXPANDの件
      • 環境変数内には、% で囲まれている文字列があったりしますが、これは
        ExpandEnvironmentStrings?() を使うことで 展開できます。
      • GetEnvironmentVariable?() を使って環境変数を参照する際には、
        % で囲まれている部分は展開されたものが返ってきます。
      • REG_EXPAND_SZ レジストリに書き込む方法
        http://support.microsoft.com/kb/271733/ja

Tags: :Windows


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2021-06-22 (火) 15:19:09 (1032d)