Windows Dev. Site

PowerShell

やっぱり最初はこのネタで。
登場したときから、注目していました。PowerShellは以下二つの理由で興味があります。

  1. Unixシェルの進化バージョン
  2. GUIのWindowsでなぜCUI

現在でも仕事でUnixのシェルスクリプトは多用しています。このGUIの時代に、まだまだテキスト編集や、出力結果を渡したりするのにとても便利です。cat, sed, awk, grep などなど必需品です。
しかし、これらテキストベースであるため、ちょっとしたプログラムミスで期待した出力にならなかったり、とても注意が必要です。たとえば、CSVファイルの編集などしたいとき、カンマ区切りを考慮して目的のデータを取り出したりするときなど、実際の処理の流れとは別に、一文字単位の変換など細かいところまでコーディングする必要がありました。
PowerShellでは、テキストベースではなく、オブジェクトベースでパイプラインを構築できるので、処理の流れに集中することができます。Unixのように各コマンドのシンタックスに違いがなく、どのコマンドも統一的に扱うことができます。
これらは後発の強みですので、当然といば当然ですが、GUIのWindowsでこのようなものが作られたというところに、CUIの必要性を証明していてとても興味深いです。(パイプという概念を導入したUnixは偉大ですね)

Get-ChildItem | where{$_.length -gt 1000} | 
  select  Name,Length | sort -Property length

このような感じで、ファイルリスト(dir)をサイズでソースすることが簡単にできます。(1000byte以上を対象。エイリアスも入っていて統一感がありませんが、SQL的に見えるのでこうしました。)
煩わしい文字列操作を意識せず、オブジェクトの操作ができるのは、直感的にデータ操作ができてとても便利です。
あと.Net APIとの親和性など、まだまだ魅力はあるのですが、勉強を進めながら使えるものを増やしていきたいと思っています。
はっきり言って、すごい好みです!

Comment