PowerShellの基礎知識
変数の名前と型
- 先頭は「$」文字。
- 2文字目以降は「任意の英数字およびアンダースコア」。
- 変数は事前に宣言する必要はない。
- 変数の型は、値の入力時にPowerShellが内部で判断し、決定する。
- 型を変換する必要がある場合は、大カッコ「[]」で囲んだ型の完全修飾名を付加します。
- Int64型の「10」を変数$numに代入するには、
- $num = [system.Int64]10
配列
- 配列を作成するには、「@」文字と小カッコ「()」を使用します。
- また配列の要素をカンマ「,」で区切ります。
- 3つの要素「10」「20」「30」を持つ配列を作成し、変数$arrayに代入するには、以下のように記述
- $array@(10,20,30)
- この配列の要素にアクセスするには、以下のように記述
- $変数名[インデックス番号]
- インデックス番号は0から始まります。
- $arrayの最初の要素にアクセスするには、
- $array[0]
連想配列
自動変数
分類 | 自動変数 | 内容 |
---|---|---|
特殊なフォルダ | $HOME | ユーザーのホームフォルダ |
$PSHOME | PowerShellのインストールフォルダ | |
特殊なオブジェクト | $_ | ForEach-Object]やWhere-Objectなどで利用される、現在のパイプラインオブジェクト |
$args | スクリプトファイルや関数の引数 | |
演算子
演算子 説明
- eq 等しい
- ne 等しくない
- gt より大きい
- ge 以上
- lt より小さい
- le 以下
- like ワイルドカードによる比較
- notlike ワイルドカードによる比較
- match 正規表現による比較
- nomatch 正規表現による比較
関数の作成
ヒア文字列
特殊文字
Staticなメソッドを実行する
■.NET Frameworkのクラスや構造体がもつStaticなメソッドは、以下の形式で実行できます。
[名前空間.クラス名]::メソッド名(引数)
[名前空間.構造体名]::メソッド名(引数)
使用例
PS C:\> [system.io.directory]::createdirectory("c:\test\createdirectory")
Mode LastWriteTime Length Name
---- ------------- ------ ---- d---- 2010/05/20 7:52 createdirectory
Staticなプロパティにアクセスする
[名前空間.クラス名]::プロパティ名
[名前空間.構造体名]::プロパティ名
[名前空間.列挙体名]::プロパティ名
使用例
PS C:\> [system.datetime]::today
2010年5月20日 0:00:00
プロバイダとその考え方
- 従来は「ファイルシステム」「レジストリ」などといったことなる種別のデータを操作する場合、そのデータ種類ごとに提供されている専用コマンドを利用するのが常識でした。
- 種類ごとにそれぞれ専用コマンドを覚える必要があった
- ユーザーの負担を抑えるためにデータの種類ごとに「プロバイダ」と呼ばれるプログラムを用意し、データ固有の処理を担当させる仕組みを導入している。
- ファイルやフォルダを作成する「Net-Item」コマンドレットは、ファイルやフォルダだけでなくレジストリキーも作成できる。
- ファイルやフォルダを作成する場合は「FileSystem」プロバイダが、レジストリキーを作成する場合には「Registry」プロバイダがデータ操作を行うことで実現。
スクリプトブロック
- 複数のステートメントやコマンドを中カッコ「{}」で挟んでグループ化したものを「スクリプトブロック」と呼ぶ
if ([条件式])
{
[処理]
}
elseif([条件式])
{
[処理]
}
else
{
[処理]
- 最終更新:2012-02-10 00:58:12