Pao*_*sco 16 powershell formatting
在PowerShell脚本中,我有一些传递给Format-TableCmdLet的对象.
我的脚本输出如下所示:
Something...
Operation AttributeName AttributeValue
--------- ------------- --------------
Delete Member John Doe
Something else...
Run Code Online (Sandbox Code Playgroud)
由于字段的含义非常明显,我想从Format-Table的输出中删除标题,'---'分隔符和开头和结尾的空行.
我不认为CmdLet支持这个(或者至少如果有一个参数来做这个我找不到它).
将Format-Table的输出中只包含实际值的行的最佳方法是什么?
Jay*_*uzi 29
尝试-HideTableHeaders参数Format-Table:
gci | ft -HideTableHeaders
Run Code Online (Sandbox Code Playgroud)
(我正在使用PowerShell v2.我不知道这是否在v1中.)
-HideTableHeaders遗憾的是,该参数仍会导致打印空行(并且表头仍然会考虑列宽).我知道可以在这里可靠工作的唯一方法是自己格式化输出:
| % { '{0,10} {1,20} {2,20}' -f $_.Operation,$_.AttributeName,$_.AttributeValue }
Run Code Online (Sandbox Code Playgroud)
试试-ExpandProperty.例如,我使用它来发送clean变量Out-Gridview -PassThru,否则变量会存储标题信息.请注意,如果要返回多个属性,这些并不是很好.
一个例子:
Get-ADUser -filter * | select name -expandproperty name
Run Code Online (Sandbox Code Playgroud)
或者,你可以这样做:
(Get-ADUser -filter * ).name
Run Code Online (Sandbox Code Playgroud)
小智 6
这是我解决这个问题的方法。我只是将输出通过管道传输到 Out-String,然后将该输出传递给 .NET Trim 函数:
(gci | ft -HideTableHeaders | Out-String).Trim()
Run Code Online (Sandbox Code Playgroud)
这将删除表格前后的换行符。
如果您仍然需要尾部换行符,您还可以使用 TrimStart 来处理标题的换行符。
(gci | ft -HideTableHeaders | Out-String).TrimStart()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
77372 次 |
| 最近记录: |