コマンドレットのパラメータを列挙してみる。|TweetPowerShellはゆるふわな言語ですが、そのゆるふわさがたまによく牙を剥きます。あえとすさんがこんなツイートをされていました。'C'の3要素が格納された配列となるのでLengthは3、$x[2]は最後の要素である'C'が入っていそうです。シンキングタイム3分。'C')というのは実は3要素の配列を返さず、単一の文字列を返します。-等の二項演算子を利用する際、左辺と右辺の型が異なる場合は、まず右辺の型を左辺の型に暗黙の型変換を行ってから演算を行います。'C')なので文字列配列(厳密にはobject[])、左辺は文字列型なので、文字列配列が文字列に型変換されるわけです。ここで配列→文字列の型変換がどうやって行われるかという話なのですが、まず配列要素がそれぞれ文字列型に変換されます。この変換は型によってそれぞれ挙動が違いますが、特にPowerShell上で定義がない場合はToString()されたものが返されます。今回のは配列要素が元々文字列なので変換はありません。次に、文字列同士がユーザー定義$OFSに格納されている文字列で連結されます。"(半角スペース)として扱われます。Separatorの略です。awkとかPerlとかにも同様の変数があり、PowerShellのはそれらを参考にしたものと思います。