PowerShell 自動変数とユーザ設定変数

PowerShell

この記事では、PowerShellの自動変数とユーザ設定変数について説明します。

自動変数

Powershellの変数は、Powershellで自動的に定義されている変数があります。これを「自動変数」といいます。自動変数はPowerShell によって作成、管理されます。

Powershell起動直後に、「Get-Variable」コマンドレットを実行すると、自動変数の一覧が確認できます。

自動変数一覧の確認

PS> Get-Variable

Name                           Value
----                           -----
$
?                              True
^
args                           {}
 :
(省略) 

 :
VerbosePreference              SilentlyContinue
WarningPreference              Continue
WhatIfPreference               False

主な自動変数

Powershellには、様々な自動変数が定義されています。

自動変数 意味
$$ シェルが受け取った最後の行にある最後のトークン。
$? 最後のコマンドの実行状態。 最後のコマンドが成功した場合は True 、失敗した場合 は False。
$^ シェルが受け取った最後の行にある最初のトークン。
$_ パイプラインオブジェクト内の現在のオブジェクト。
$args 関数、スクリプトで受け取る引数の配列。
$Error 最新のエラーを表すエラーオブジェクト。
$false False値。
$home ユーザーのホーム ディレクトリの完全なパス。
$input パイプラインで渡された入力オブジェクト。
$null null または空の値。
$PID 現在のPowerShell のプロセス識別子 (PID) 。
$profile 現在のユーザープロファイルの完全なパス。
$pshome PowerShell のインストール ディレクトリの完全なパス 。
$PWD 現在の PowerShell のディレクトリの完全なパス。
$true True値。

ユーザー設定変数

「ユーザー設定変数」とは、自動変数と同じように、あらかじめPowershellで定義されている変数です。

自動変数との違いは、自動変数はユーザーが変更できませんが、ユーザー設定変数はユーザーが変更できます。

ユーザー設定変数は、主にPowershell環境のカスタマイズに使用します。

主なユーザー設定変数

ユーザ設定変数名 初期値 意味
$ConfirmPreference High 確認メッセージの表示動作を制御する。
$DebugPreference SilentlyContinue デバッグメッセージの表示動作を制御する。
$ErrorActionPreference Continue エラーメッセージの表示動作を制御する。
$ProgressPreference Continue プログレスバーの表示動作を制御できる。
$WarningPreference Continue 警告メッセージの表示動作を制御できる。

変数の出力

変数の出力には、「Write-Host」コマンドレットと、「Write-Output」コマンドレットを使用します。

これらのコマンドレットは、オブジェクトの内容をコンソール画面に出力します。

編集の出力のコマンドレット

コマンドレット名  意味
Write-Host ホストユーザインターフェース(通常はPowershellコンソール画面)を使用してオブジェクトを表示します。
改行無しの出力や、画面に出力する文字や背景の色を指定できます。
Write-Output オブジェクトをパイプラインに書き込みます。

Write-Hostコマンドレットの例

PS> Write-Host $pwd -ForegroundColor yellow -BackgroundColor Blue
C:\temp

Write-Outputコマンドレットの例

PS> Write-Output $pwd

Path
----
C:\temp

Write-Outputコマンドレットでパイプを通して出力する例

PS> Write-Output $pwd | Get-Member


   TypeName: System.Management.Automation.PathInfo

Name         MemberType Definition
----         ---------- ----------
Equals       Method     bool Equals(System.Object obj)
GetHashCode  Method     int GetHashCode()
GetType      Method     type GetType()
ToString     Method     string ToString()
Drive        Property   System.Management.Automation.PSDriveInfo Drive {get;}
Path         Property   string Path {get;}
Provider     Property   System.Management.Automation.ProviderInfo Provider {get;}
ProviderPath Property   string ProviderPath {get;}

Read-Hostコマンドレットの例

Powershellプロンプトからの入力を受け取って変数に値を代入するコマンドレットです。

PS> $a = Read-Host "何番ですか?"
何番ですか?: 3
PS> Write-Host $a
3

まとめ

今回はPowerShellの自動変数とユーザ設定変数について説明しました。また、変数の出力についても説明しました。

タイトルとURLをコピーしました