読者です 読者をやめる 読者になる 読者になる
無料で使えるシステムトレードフレームワーク「Jiji」 をリリースしました!

・OANDA Trade APIを利用した、オープンソースのシステムトレードフレームワークです。
・自分だけの取引アルゴリズムで、誰でも、いますぐ、かんたんに、自動取引を開始できます。

パイプラインで遊ぶ

Power Shell

コマンドとコマンドをパイプライン(|)でつなぐことで、「最初のコマンドの実行結果を次のコマンドに渡してさらに処理させる」ことができます。

以下はパイプラインの単純なサンプル。「psで取得したサービス一覧をftでテーブル形式にフォーマットして表示」します。

PS C:\> ps | ft name, vm, path

Name                                    VM Path
----                                    -- ----
alg                               37634048 C:\WINDOWS\System32\alg.exe
AppleMobileDeviceService          19128320 C:\Program Files\Common Files\Apple\...
...

コマンド間では「オブジェクト」が受け渡しされます。上の例だと、「System.Diagnostics.Process」の配列が渡されることになります。

PS C:\> ps | gm


   TypeName: System.Diagnostics.Process

Name                           MemberType     Definition
----                           ----------     ----------
Handles                        AliasProperty  Handles = Handlecount
Name                           AliasProperty  Name = ProcessName
NPM                            AliasProperty  NPM = NonpagedSystemMemorySize
...

foreach で渡されたオブジェクトを取り出して順に操作できます。取り出したオブジェクトは「$_」で参照できます。

PS C:\> ps | foreach { echo $_.Name }
alg
AppleMobileDeviceService
...

whereで絞り込み。以下は、「VirtualMemorySizeが100MB以上のプロセスの一覧を表示」する例です。

PS C:\> ps | where { $_.VM -gt 100*1024*1024 }

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
    107       3     3120       2256   411     0.61   1412 bash
    124       5    21852       3040  1083   192.92   1516 BunBackup
    112       5     2896       1140   411     0.58   1204 cygterm
   1007      27    28216      29184   139   170.47   3292 explorer
...

さらにソートしてみます。

PS C:\> ps | where { $_.VM -gt 100*1024*1024 } | sort VM -descending

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
    124       5    21852       3040  1083   192.92   1516 BunBackup
    112       5     2896       1140   411     0.58   1204 cygterm
    107       3     3120       2256   411     0.61   1412 bash
...