パイプを通過するレコードを数えようとしています。私は何を得ることはありPowershellパイプ変数をインクリメントすることはできますか?
$x=28
gci | select-object basename,fullname,@{name='x'; Expression={($x--)}}
: - xは変更されません
BaseName FullName x
-------- -------- -
aaoeu C:\Users\m\x\aaoeu.txt 28
aue C:\Users\m\x\aue.txt 28
xx C:\Users\m\x\xx.txt 28
私は上記のように代わりに@発現のアドオンメンバーを試してみたし、それは同じことをした私の表現は次のようになりますオブジェクトあたりの値。
私の最終目標はcsvファイルを生成することです.GCiがレコードを送信するときに値を変更する変数を取得できない場合は、write-hostを使用してgci出力を反復することができます。
私の質問は、select-objectまたはadd-memberの変数をインクリメントする正しい構文がないか、それを行うことができませんか?
'Expression = {(([ref] $ x).Value--)} – PetSerAl
@PetSerAlありがとう!それは何が起こっているか私には明らかではないが、うまくいった。私はサブルーチンの操作がサブルーチン全体の変数に影響を与えるようにしたいときに "ref参照"を呼び出すと思います。この例では、 "サブルーチン"の境界線がどこにあるのか分かりません。 – Michael
'Select-Object'は別のスコープで' Expression'を呼び出します。 – PetSerAl