为什么这个PowerShell片段会产生额外的空白行?

时间:2012-04-03 13:46:01

标签: powershell

此命令将在顶部生成1个额外的行,在底部生成3个。

Get-Process | select Name  | ft -HideTableHeaders | Out-File .\process.txt

其他列表也会发生同样的事情,例如阅读目录。

3 个答案:

答案 0 :(得分:3)

与上一个答案中的结果相同,但在另一种语法中:

Get-Process | foreach{ $_.Name}  > .\process.txt

尽管

,但最后仍有空行

答案 1 :(得分:2)

你可以将它变成一个字符串并修剪它:

(Get-Process | select Name  | ft -HideTableHeaders | Out-String).Trim() | Out-File .\process.txt

而不是三个,现在最后只有一个空行。

答案 2 :(得分:1)

我认为empy行是由于format-table输出和out-file在字符串之间放置行终止符,但我不太确定。

要避免这种情况,如果您只需要文件中的名称列表,则可以执行以下操作:

Get-Process |  % { if ( $_ -ne $null ) { $_.name } } | Out-File .\process.txt

如果Out-File有一个-SuppressLastEmptyLine切换以避免最后一个空,那将会很有用 线。