PowerShell を使用して環境変数を設定する

Marion Paul Kenneth Mendoza 2023年6月21日
  1. 環境変数とは
  2. PowerShell で Env: を使用して環境変数を設定する
  3. PowerShell で [System.Environment] .NET クラスを設定する
  4. 現在の PowerShell セッションで環境変数を更新する
PowerShell を使用して環境変数を設定する

Windows PowerShell を使用して Windows 環境変数を設定し、環境変数を読み取り、新しい環境変数を作成することは、コマンドの適切な実行がわかれば簡単です。

PowerShell は、$env: PSDrive および [System.Environment] .NET クラスから Windows 環境変数とやり取りするためのさまざまな方法を提供します。 この記事では、環境変数の設定と、PowerShell を使用した現在のセッションでの更新について説明します。

環境変数とは

名前が示すように、環境変数には、Windows とアプリケーションの環境に関する情報が格納されます。

Windows エクスプローラーなどのグラフィカル インターフェイスや、メモ帳、cmd.exe、PowerShell などのプレーン テキスト エディターから環境変数にアクセスできます。

環境変数を使用すると、PowerShell スクリプトまたはモジュールでファイル パス、ユーザー名またはコンピューター名などをハード コーディングする必要がなくなります。

PowerShell で Env: を使用して環境変数を設定する

New-Item コマンドレットを使用して、PowerShell で新しい環境変数を作成できます。 ただし、最初に、以下に示すように、環境変数の名前を Env:\<EnvVarName> 形式で Value パラメーターに指定します。

コード例:

New-Item -Path Env:\TEST -Value WIN10-DESKTOP

出力:

Name                           Value
----                           -----
TEST                           WIN10-DESKTOP

Set-Item コマンドレットを使用して、環境変数を設定するか、まだ存在しない場合は新しい環境変数を作成できます。 たとえば、Set-Item コマンドレットを使用して以下を確認できます。

環境変数を作成または変更できます。

コード例:

Set-Item -Path Env:TEST -Value "TestValue"

PowerShell で [System.Environment] .NET クラスを設定する

[System.Environment] は、いくつかの異なる .NET 静的クラス メソッドを使用します。 静的な方法が何であるかを理解する必要はありません。

これから学ぶテクニックを理解するだけでよく、最初にクラス ([System.Environment]) を参照し、続いて 2つのコロン (::) を参照し、次にメソッドを参照する必要があります。 .

上記の .NET クラスを使用して環境変数を設定するには、SetEnvironmentVariable() 関数を使用して、指定されたスコープの既存の環境変数の値を設定するか、まだ存在しない場合は新しい環境変数を作成します。

プロセス スコープで変数を設定すると、プロセス スコープが揮発性で現在のセッションに存在することがわかりますが、ユーザー スコープとマシン スコープへの変更は永続的です。

コード例:

[System.Environment]::SetEnvironmentVariable('TestVariable','TestValue','User')

現在の PowerShell セッションで環境変数を更新する

PowerShell セッションで新しい環境変数セットを使用するには、.NET クラスを介してユーザー プロファイルとマシンの環境変数を取得し、それを PowerShell 環境変数に割り当てます。

環境変数も PowerShell 変数と見なされるため、より簡単に直接値を割り当てることができます。

コード例:

$env:PATH = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

関連記事 - PowerShell Environment Variables