如何在输出进入控制台时将Format-Table截断,但在输出到文件时不截断?

时间:2014-04-11 14:53:35

标签: powershell scripting

这里真正的问题是,您是否可以检测到您的输出被重定向到文件?

我的脚本中包含以下内容:

$table | Format-Table -AutoSize

假设我的脚本名为Print-Table。

我希望在执行时截断表的列:

.\Print-Table

但是,当我这样做时,我想让列完全展开:

.\Print-Table > table.txt

这可能吗?

1 个答案:

答案 0 :(得分:0)

重定向发生在脚本之外,所以不,你无法检测到它。您可以将文件名作为脚本的参数,并在脚本中重定向/自动调整大小:

[CmdletBinding()]
Param(
  [Parameter()]
  [string]$Filename
)

if ($Filename) {
  ... | Format-Table > $Filename
} else {
  ... | Format-Table -AutoSize
}
相关问题