我正在尝试通过管道计算记录。我的表情看起来像:
$x=28
gci | Select-Object basename, fullname, @{name='x'; Expression={($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
我已经尝试了Add-Member而不是上面的@表达式并且做了同样的事情 - x不会改变每个对象的值。
我的最终目标是生成一个CSV文件,这样我就可以使用Write-Host来迭代Get-ChildItem(gci)输出,如果gci发出记录时无法让我的变量改变值。
我是否错过了在Select-Object或Add-Member中增加变量的正确语法,或者只是不可能这样做?
答案 0 :(得分:1)
解决方案2(使用全局变量):
$global:x=28
Get-ChildItem | select-object basename,fullname,@{name='x'; Expression={($global:x--)}}
简短版本:
$global:x=28
gci | select basename,fullname,@{N='x'; E={($global:x--)}}
答案 1 :(得分:0)
解决方案1(foreach可以找到变量):
$x=28
gci | %{ $x++; [pscustomobject]@{BaseName=$_.BaseName; FullName=$_.FullName; x=$x}}
答案 2 :(得分:0)
解决方案3(声明进入循环):
dataInputStream.readLine();
dataInputStream.readByte();
dataInputStream.read();