【初めてのPowerShell】その3)変数

1 はじめに

PowerShellって、従来のWindowsコマンドプロンプトやLinuxなどUNIX系のBashなどと
比べるとどうも難しい。
とにかく、“コマンドレットcmdlet)”っていうのが、よくわからない。
訳のわからない演算子もたくさんでてくる。
PowerShell実践ガイドブック」なる本を購入してみたが、分厚くてくじけそうになりました。

それじゃー、わかるところを始めようと、
まずは身近なファイル・ディレクトリ操作のコマンドレットから初めてみました。
【初めてのPowerShell】その1)ファイル・フォルダー操作のコマンドレットと外部コマンド

以降、PowerShellスクリプトが書けるようになるまでを、順番に整理して行くことにしました。

コマンドレットとは
主要なコマンドレットと入出力、文字列操作
変数とデータ型
PowerShellで使われる演算子
パイプラインとリダイレクション
スクリプティングと自動化

⑥については、下に示すような学んで行くべき要素があると思いますが、
2025/05時点では、とりあえずざっくりとしたこの題名で。。。

制御構文
オブジェクトの操作
基本的なスクリプティングと関数

第2回目は、PowerShellの主要なコマンドレットと、
入出力コマンド文字列のクラスについて、どういうものがあるのか整理してみました。
現在Windowsコマンドプロンプトが理解できることを前提に、
PowerShellでどのような要素に置き換えられるのかという視点でまとめてみました。
【初めてのPowerShell】その2)主要なコマンドレットと入出力、文字列操作

第3回目の本記事は、変数について整理してみました。
わざわざまとめる必要もないことかと思いましたが、
自分では定義していない自動変数が多数でてきていてよくわかりません。
自動変数を中心に整理してみました。

第4回目は、PowerShellで使う演算子を整理してみました。
【初めてのPowerShell】その4)PowerShellの演算子一覧

本記事では、個々の要素の詳しい使い方の説明は行いません。
どのような要素があるのかをまとめただけのものであることをお断りしておきます。

2 変数の表現と代入

2.1 変数

PowerShell変数には、すべての種類の値を格納できます。
たとえば、コマンドの結果を格納し、名前、パス、設定、値など、コマンドと式で使用される要素
を格納します。

変数は、”$<変数名>”の形式で、値を代入する形式で定義します。

<変数名>は、英数字で構成します。
<変数名>は、大文字小文字を区別しません。

スペースまたは特殊文字を含む変数名を作成または表示するには、
<変数名>を中かっこ({})文字で囲みます。

PowerShellには、いくつかの異なる種類の変数があります。

ユーザー作成変数
ユーザーが作成した変数は、ユーザーによって作成および管理されます。

自動変数
自動変数は、PowerShellの状態を格納します。
これらの変数PowerShellによって作成され、
PowerShellは精度を維持するために必要に応じて値を変更します。

ユーザー設定変数
ユーザー設定変数には、PowerShellのユーザー設定が格納されます。
これらの変数は、PowerShellによって作成され、既定値が設定されます。

2.2 変数のデータ型

PowerShellの変数は、格納するデータの型に応じて自動的に型が決まります。

一般的なデータ型には、文字列(String)、整数(Integer)、浮動小数点数(Double)、
配列(Array)、ハッシュテーブル(Hashtable)などがあります。

2.3 代入

変数は、代入演算子(イコール)」を使うことで、値を代入することができます。

2.4 変数の確認、破棄と削除

2.4.1 変数の確認

Get-Variable”コマンドレットか、
変数プロバイダーを”Get-ChildItem Variable:”で、 変数の一覧を表示することができます。

2.4.2 変数の値のクリア

変数に一度設定した値を消したいときは、 ”Clear-Variable”コマンドレットを使用するか、
$nullを代入します。

変数に格納されているデータはクリアされますが、変数は削除されません。

2.4.3 変数の削除

変数を削除するには、 ”Remove-Variable”コマンドレットを利用します。

3 定数と読み取り専用変数

3.1 定数と読み取り変数

Set-Variable -Option Constant”で、読み取り専用の定数を作ることができます。

Set-Variable -Option Readonly”は読み取り専用の変数ですが、
定数と違って”Remove-Variable -Force”で削除することができます。

3.2 $null

PowerShellには、
存在するかしないかを示すための特殊な変数”$null(ヌル、ナル)”があります。

変数が空の状態であることを指し、値が存在自体しないことを示します。

また、出力の破棄にも$nullが利用されます。

4 シェル変数

PowerShellには、既定で組み込まれている変数がいくつか存在します。
これらをシェル変数と呼びます。

4.1 自動変数

PowerShellが自動で値を設定しているものを自動変数と呼びます。
書き換えることもできますが、「ユーザーはこれを変更すべきではない」とされています。

自動変数は、PowerShell起動直後に ”Get-Variable”コマンドレットで確認することができます。

表4.1-1に主な自動変数を示すます。

4.2 ユーザー設定変数

シェル変数の中には、コマンド実行時の挙動や実行結果表示、
コンソール挙動をユーザーが変更するための変数も存在します。
これをユーザー設定変数と呼びます。

以上

本記事の元となっているWordで作成したPDFを
ページ最後に貼り付けました。

少しでも役に立てていただければ、うれしく思います。

このPDFファイルは、自由に配布されてもかまいません。
ただし、再配布の際には、
入手元著者名は明らかにしてください

なお、上のPDFファイルの内容、また本文中の記述に、
誤字や脱字、誤った内容の記述など見つかりましたら、
下に示すフォームでご連絡いただければ幸いです。

お問い合わせ