>>166
ls|sort $_.Name
これが想像通りに動作していない理由は、sortの第一引数がソート対象のパイプライン対象データやコレクションではなく、-Property 引数だからだよ
ls|sort -Property $_.Name
と書いているのと同じで、プロパティ名として謎のリストが渡されている状態
ls|sort -Property $(if ($_ -eq $null) { "LastWriteTime" } else { "Length" } ) を実行してソート順をみると分かりやすい
$_ は $null になってる
ls | ForEach-Object { echo $_ } のようにコマンドレットのスクリプトブロック外で呼び出しても $_ は $null になっていて使い物にならない模様
echo 1
は当然エラーにならないのに対して
ls|echo 1 が ParameterBindingException になる理由はよくわからんけど、第一引数とパイプラインのどちらの形式でも渡すことができる同一概念のパラメーターを二重に渡しているのでコマンドレット内部で競合・混乱が起きるのかもね
探検
スレ立てるまでもない質問はここで 156匹目
■ このスレッドは過去ログ倉庫に格納されています
171デフォルトの名無しさん
2021/03/11(木) 00:16:26.39ID:RchM98kf■ このスレッドは過去ログ倉庫に格納されています
