PowerShell でオブジェクトをパイプできる件
PowerShellのパイプは、オブジェクト自体を受け渡せるらしいのだが、これはPythonなどのスクリプト言語では普通の動作で、PowerShellで
> ls|sort
と書く部分は、関数呼び出しやメソッド呼び出しを使って、
ls().sort()
などと書く。ただし、ls()や, sort() はdirhandle, __gt__, __lt__ などを使って、独自に実装する必要がある。 これは、文字列と違ってオブジェクトでは、個々の振る舞いを指定しなくてはいけないためで、Unix shell よりも使い方はより難しい。
Unixのパイプは異なるプロセスをつないでいるため、文字列しか受け渡せないが、その分まぎれが少ない。
Unix でスクリプティングを計画する時には、Shellにするか、Pythonにするかで迷うことがよくあるのだが、PowerShellは見た目よりもPythonよりだと考えた方がよさそうだ。