PowerShell Memo

このサイトはPowerShell(MSH/Monad)奮闘記です

管理人「newpops吉岡洋」が
「PowerShell(旧名:MSH/Monad)」の研究結果を日々綴っていきます。

【お知らせ】
この日記からPowerShellのTipsを抽出し「PowerShell FAQ」として整理しました。


2005-11-01

[]$inputの謎(1)

「more」の挙動

「more」コマンドを作成する - PowerShell Memo

「パイプと引数を同時に渡すと、両方処理してしまう点が課題です」と書きましたが、Cygwin

ls | more test.txt

と打つと、パイプと引数の両方ともページング表示されました。

ということは、「more」コマンドを作成する - PowerShell Memoで書いたMSH「more」は、UNIXの「more」と同等処理ということになりますね。

「System.Array+SZArrayEnumerator」

System.Array+SZArrayEnumeratorはSystem.Arrayの内部クラスです。

System.ArrayのソースはDotNet247: #1 Guide To The Best Web Hosting Companiesで確認できます。

$inputがnullにならないのはなぜ?

パイプで渡されるのはObjectの配列です。

例えば、

get-process | more

を実行すると、存在するプロセスの数を要素数とするObjectがパイプに渡されます。

実際には「System.Diagnostics.Process」の配列ですね。


以下のようにパイプを利用していない場合は、

more xxx.txt

おそらく、要素数0個のObject配列が渡されているのだと思います。

そのため$inputはnullにならないのではないでしょうか。