C#と諸々

C#がメインで他もまぁ諸々なブログです
おかしなこと書いてたら指摘してくれると嬉しいです(´・∀・`)
つーかコメント欲しい(´・ω・`)

--/--/-- --:--
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
タグ:
トラックバック(-) | コメント(-) | このエントリーを含むはてなブックマーク
2008/11/02 00:57
先日オライリー・ジャパンさんより刊行された「Windows PowerShellクックブック」を献本頂きました。
僕もまだ読み途中ではありますが、この本を簡単に紹介したいと思います。

本書は、PowerShell 開発メンバーの方が執筆され、MS のエバンジェリストチームの方々が監訳された本です。
260 に及ぶ「レシピ」を紹介していて、ページ数も 600 ページとボリューム満点です。
大きく分けると 3 つの部から構成されていて、第一部が「PowerShell の基本」、第二部が「一般的なタスク」、第三部が「管理者タスク」となってます。

本書を通じて、様々なレシピを身に付けることができます。本書で紹介されている豊富なレシピは初級者から上級者まで幅広い層の方々の役に立つことと思います。
そして、本書を一通り読み終えた後は、リファレンス本としても重宝することと思います。

ではここで、僕が本書を読んですぐに profile.ps1 ファイルに追加した、一つの関数をご紹介したいと思います。

function Prompt
{
    $Host.UI.RawUI.WindowTitle = "$(Get-Location)";
    $id = 1;
    $historyItem = Get-History -Count 1;
    if ($historyItem)
    {
        $id = $historyItem.Id + 1;
    }
    return "PS {0:00000}> " -f $id;
}

Prompt 関数を定義すると、PowerShell のプロンプトをカスタマイズすることができます。上記の Prompt 関数では、プロンプトにセッション履歴番号を表示するようにしています。それだけだと現在のパスがわからなくなってしまうので、現在のパスをウィンドウのタイトルに表示するようにもしています。
セッション履歴番号が一目でわかるようになったことで、Invoke-History コマンドレットがとてつもなく使いやすいものになります。例えばこんな感じです。

PS 00001> 1+1
2
PS 00002> 2+2
4
PS 00003> Invoke-History 2
2+2
4
PS 00004>


この関数は、「レシピ 1.3 シェル、プロファイル、プロンプトを管理する」にて紹介されていた関数をアレンジしたものです。アレンジと言っても、文字色を付けないようにしたり (オリジナルでは Write-Host コマンドレットを使って文字色を付けています)、セッション履歴番号をゼロパディングするようにした、といった程度です。

Prompt 関数を定義することでプロンプトをカスタマイズできることは元々知っていましたが、それを利用してセッション履歴番号を可視化するという発想は持っていませんでした。本書は、このような気付きも与えてくれます。
タグ: .NET PowerShell 書籍


昨日店頭で見たとき、PowerShell インアクションとどうちがうのかな?と思ったのですがちょっとスルーしました。

会社では荒井さんのプログラマブルPowerShellを置いているのですが、これもおいてみようかな…。

2008.11.02 12:58 URL | kkamegawa #pK.oNfME [ 編集 ]


会社に置いておくと便利かもです~
# ウチの部署だと PowerShell 知ってるの僕くらいしかいないので無意味になりかねないですがw

2008.11.03 03:31 URL | よこけん #Ay6tTHf6 [ 編集 ]












トラックバックURL↓
http://csharper.blog57.fc2.com/tb.php/238-d3a9953c

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。