2009年11月10日火曜日

Windows Power Shell v2だと、フォルダの一覧表も簡単に作れる!

Windows7が標準で備える超強力コマンドシェルの「Windows Power Shell v2」ですが、従来のWindowsのコマンド画面(CMD.exe)とは完全に一線を画しています。

たとえば、こんな事が出来ます。

私は、撮影した写真を管理するために、日付を名前に付けたフォルダに入れていますが、このフォルダの一覧表が欲しいなぁという時、Windows Power Shellならば、標準のコマンドだけでいかようにも画面やファイルに出力する事が出来ます。
(サンプルのフォルダは、テスト用にテキトーに作ったものです! 北極点とかに行ってませんし)

ちょっと凝りたい時でも、Windows Power Shellは関数を作る事も可能なので、他のプログラム言語を持ち出す事なく完結させる事が出来ます。

・・・というわけで、フォルダの一覧をファイルに出力するコマンドの関数を作ってみました。
今作ったばかりなんで、バグが残存しているかも知れませんが、「Windows Power Shellって、今までのコマンドシェル=CMD.exeとは全然違うぜ!!」という事が分かればいいなぁって主旨なんでこのまま行きます。コマンドの解説とかも割愛させて頂きますね。すみません。

そうだ。実際の関数の中身もスクリーンショットという形で掲載させて頂きますが、Windows Power Shellのコマンドは、実行した結果がテキストではなくてオブジェクトで返って来ます。

たとえば、Get-ChildItem | Where-Object{$_.Mode -like $str_condition}|Sort-Object Name,Modeという部分ですが、これはDOSやLinuxでもおなじみのパイプによるコマンドのバケツリレーですが、オブジェクトをリレーしている点がWindows Power Shellの画期的なところかと思います。

こんな感じで、コマンドと.NET Frameworkが融合しているわけですが、C#言語でもなく、VB.NETでもなく、全く新しい対話型の言語になっているのも分かると思います。

ちなみに、変数は型を指定しなくてもOKです。
OKではあるのですが、こいつの型は最初に指定した方が自分の身のためかも。なぜならば、JavaScript等と違って、何回も型を変化させる事は出来ないので、自動まかせだとトラブルの元になるような嫌な予感がしました

ちなみに、この関数は、一応フォルダの一覧表だけでなく、第一パラメータを0に変えると、拡張子をカットしたファイルの一覧表を出力するように作ったつもりですが、試してません。ちょっと瞼が重くなってきたので、この記事を送信したら寝ます・・・。
おやすみなさい・・・。