PowerShell Memo

このサイトはPowerShell(MSH/Monad)奮闘記です

管理人「newpops吉岡洋」が
「PowerShell(旧名:MSH/Monad)」の研究結果を日々綴っていきます。

【お知らせ】
この日記からPowerShellのTipsを抽出し「PowerShell FAQ」として整理しました。


2006-09-27

[][]PowerShell from IronPython Part 2

PowerShell from IronPython - PowerShell Memoの続き。

今回はサンプルの使い方です。

STEP1:サンプルのダウンロード

上記ファイルを任意のディレクトリ解凍します。

「IPPowerShell」がサンプルを含んだディレクトリです。今回は「C:\IPPowerShell」に解凍しました。

STEP2:powershell.pyを読み込む

コマンドプロンプトで「C:\IPPowerShell」をオープン。以下を実行して「powershell.py」を読み込みます。

C:\IPPowerShell>ipy.exe -i powershell.py
Run 'dir(shell)' to get a list of available PowerShell commands!
In general, IronPython PowerShell commands are accessed using the form:
    shell.get_process("cmd").select(First=2)

ここまでで、PowerShellを利用する準備は整いました。

STEP3:PowerShellを利用する

Cmdletを実行するには「shell.」に続けてCmdletを記述します。

ただし、NounとVerbの間の「-(ハイフン)」は「_(アンダーバー)」に置き換える必要があります。


以下にサンプルを示します。

STEP4-1:Cmdletの利用

「Get-Process」を実行する
>>> shell.get_process()
Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
    100       5     1280       3640    35     0.03   2836 alg
    208      11    15304       2348   106     5.59   3088 B2
    773      47    27912      42560   154    39.33   1580 CCAPP
(中略)

STEP4-2:Cmdlet(引数付き)の利用

「Get-Process ipy」を実行する

引数を渡す場合は、以下のよう記述します。

>>> shell.get_process("ipy")
Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
    422      14    40016      40152   183     4.42    748 ipy

STEP4-3:Cmdlet(キーワードパラメータ付き)の利用

「Get-Date -DisplayHint date」を実行する

キーワードパラメータを渡す場合は、以下のよう記述します。

>>> shell.get_date(DisplayHint='date')
2006年9月27日

STEP4-4:パイプの利用

「Get-Process ipy | ConvertTo-Html」を実行する

パイプを利用する場合は「.(ドット)」で区切ってコマンドを続けて記述します。

>>> shell.get_process("ipy").convertto_html()
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"  "http://www.w3.org/TR/html4/s
(中略)

STEP4-5:配列の要素へのアクセス

「Get-Process ipy | Select-Object -First 1 -Property WS」を実行する

「ipy」プロセスを取得。パイプを通して1つ目のオブジェクトの「WS」プロパティを表示するコマンドです。

IronPython上で実行するには、「[](配列)」を利用します。

>>> shell.get_process("ipy")[0].WS
41107456