我正在编写一个脚本,我想吐出一堆记录,然后将计数显示为最后一行.这是我到目前为止:
Get-Whatever -Department $Deparment
Write-Host (Get-Whatever -Department $Deparment).Count " records found"
Run Code Online (Sandbox Code Playgroud)
但我很好奇是否有办法不执行它两次.我以为我读过你可以在$$某处使用,但这不起作用.有没有更好的方法来做到这一点,或者我只需要运行两次?
我想要的输出看起来像这样:
Name
-------
Abe
Joe
Bill
3 records found
Run Code Online (Sandbox Code Playgroud)
为什么不简单地将结果分配给变量?
$d = @(Get-Whatever -dep $department); $d
Write-Host $d.Count records found
Run Code Online (Sandbox Code Playgroud)
请注意@(..).它确保即使Get-Whatever不返回任何内容,$d也会是空数组.
其他方式是例如Tee-Object.但是,它有点"神奇地"创建变量,因此它不像第一种方法那样可读:
Get-ChildItem | Tee-Object -var items
Write-Host $items.Count items found
Run Code Online (Sandbox Code Playgroud)
至于Tee-Object(来自文档,请尝试help tee-object -online):
Tee-Object cmdlet在两个方向(如字母"T")发送命令的输出.它将输出存储在文件或变量中,并将其发送到管道.如果Tee-Object是管道中的最后一个命令,则命令输出将显示在控制台中.
| 归档时间: |
|
| 查看次数: |
3061 次 |
| 最近记录: |