目次

概要

(書きかけ)

パラメータ

パラメータの渡し方

「位置パラメータ」と「名前付きパラメータ」

例: ls。 「ls .」← . は位置パラメータ。 「ls -Path .」← Path という名前の付いたパラメータ

パイプラインを通して値を渡す。 Where-Object とか ForEach-Object の -InputObject パラメータなんかはどの受け取り方もできる。

必須 位置 既定値 パイプライン入力を許可する ワイルドカード文字を許可する

Parameter required?true Parameter position?1 Parameter type String Default value Accept multiple values?false Accepts pipeline input?true Accepts wildcard characters?true

common parameter

common parameter man about_commonparameters Verbose Debug ErrorAction ErrorVariable OutVariable OutBuffer 共通パラメータに加えて、システムの状態を変更するコマンドレットがサポート しているパラメータが 2 つあります。 WhatIf Confirm

Cmdlet の実体

実体は Cmdlet クラスを継承したクラス

引数はプロパティで受け取る

名前付きパラメータの場合、プロパティ名がそのままパラメータ名に。 位置パラメータの場合、 PositionAttribute 属性を付けて位置を指定。

begin, process, end

パイプライン

パイプラインの挙動

> 1,2,3,4 |
  %{Start-Sleep 0.3; Write-Warning 1; $_ } |
  %{Start-Sleep 0.5; Write-Warning 2; $_ } |
  %{Start-Sleep 0.7; Write-Warning 3; $_ }

警告: 1
警告: 2
警告: 3
1
警告: 1
警告: 2
警告: 3
2
警告: 1
警告: 2
警告: 3
3
警告: 1
警告: 2
警告: 3
4

↑きっちりこの順で出るってことは、 各 Cmdlet が Enumerator みたいな挙動してるはず。 感覚的にはほんと、LINQ だわ。

SnapIn

SnapIn

更新履歴

ブログ