2007/08/30

パイプを多用してもスクリプトの可読性を落とさないには?
http://blogs.wankuma.com/mutaguchi/archive/2007/08/01/88060.aspx

という記事で紹介した方法は、各行にコメントが入れられないという問題点があったので、行継続文字`を使わない方法を推奨します。

Get-ChildItem |                # カレントのファイルを列挙
    ? {$_.Length -gt 100KB} |  # 容量が100KBより大きいものを抽出
    % {$_.FullName}            # FullNameプロパティを参照

演算子関係(+とかでも)では改行してもそのままちゃんと解釈されますね。

元記事:http://blogs.wankuma.com/mutaguchi/archive/2007/08/30/92713.aspx

2007/08/01

PowerShellは何かとパイプを多用するので、いわゆるif文とかfor文とかだけを使うときに比べると可読性が落ちる傾向にあるように思います。そこで編み出した?のが次の記法です。カレントにある100KBより大きいファイルのフルパスを列挙するというものです。

Get-ChildItem | `
    ? {$_.Length -gt 100KB} | `
    % {$_.FullName}

ポイントは、

・パイプのあとに`記号(改行継続文字)を入れて改行
・スペースを4つ入れてインデント
・Where-Objectコマンドレットは?、ForEach-Objectコマンドレットは%で記述。
・|.`.?,%の前後にはスペースを入れる。

これだと1行に繋げて書くよりかなり見やすいですし分かりやすいですよね?もちろんコンソールに直で打ち込む時はこんなことしなくてもいいですが、スクリプトとして保存するときはこういうのがお勧めです。

元記事:http://blogs.wankuma.com/mutaguchi/archive/2007/08/01/88060.aspx


Copyright © 2005-2018 Daisuke Mutaguchi All rights reserved
mailto: mutaguchi at roy.hi-ho.ne.jp
プライバシーポリシー

Twitter

Books