未分類

PowerShell - オブジェクトを使用する

Windows PowerShell で、オブジェクトの使い方を説明します。

Get-Item コマンドレットでファイルのオブジェクトを取得

そのオブジェクトの型を出力します。

$ret = Get-Item .\dummy.txt 
$ret.GetType()

Get-Item コマンドレットでファイルのオブジェクトを取得

そのオブジェクトをコピーします。

$ret = Get-Item .\dummy.txt 
$ret.CopyTo(".\dummy.bak")

Get-ChildItem コマンドレットの実行結果から直接オブジェクトの型を出力

(Get-ChildItem).GetType()

Get-ChildItem コマンドレットの実行結果を配列を扱うように抽出

$ret = Get-ChildItem 
Write-Host $ret[0] 
Write-Host $ret[1] 
Write-Host $ret[2]

Get-ChildItem コマンドレットの実行結果 (オブジェクト) を foreach ステートメントを使用して抽出

$ret = Get-ChildItem 
foreach ($o in $ret) {Write-Host $o}

Get-ChildItem コマンドレットの実行結果 (オブジェクト) を ForEach-Object コマンドレットを使用して抽出

$ret = Get-ChildItem 
$ret ForEach-Object {Write-Host $_}

Get-ChildItem コマンドレットの実行結果を % エイリアスを使用して抽出

$ret = Get-ChildItem 
$ret % {Write-Host $_}

Get-ChildItem コマンドレットの実行結果 (オブジェクト) からオブジェクトの型を抽出

そのオブジェクトを構成しているオブジェクトの型も抽出する。このことから $f は DirectoryInfo オブジェクトが集まったものであると推測されます。

$f = Get-ChildItem 
Write-Host $f.GetType() 
Write-Host $f[0].GetType()

オブジェクトの型を出力 (XML)

$x = [xml]"" 
Write-Host $x.GetType()

オブジェクトの型を出力 (正規表現型)

$reg = [regex]"[0-9]" 
Write-Host $reg.GetType()

プロセス情報をオブジェクトととして取得して出力

$p = Get-Process 
$p

プロセス情報をオブジェクトととして取得して出力

Get-Process Set-Variable p 
$p

オブジェクト変数を処理

$p = Get-Process 
foreach ($pp in $p) {$pp.MainModule}

オブジェクト変数を処理

foreach ($pp in Get-Process) {$pp.MainModule}

-未分類