如何更改默认输出Powershell的格式设置使用Format-Table -autosize?

时间:2016-04-22 12:37:51

标签: powershell formatting formattable

如何强制使用PowerShell

Format-Table -auto

作为将返回的对象数组写入控制台时的默认格式? 感谢

1 个答案:

答案 0 :(得分:4)

如果您每次都可以调用cmdlet,并且至少有PowerShell v3.0,那么您可以设置一个\\?\Device\something,您可以在about_Parameters_Default_Values处了解更多信息。

满足您需求的语法是:

$PSDefaultParameterValues

因此我们通过将其设置为$PSDefaultParameterValues=@{"<CmdletName>:<ParameterName>"="<DefaultValue>"} 来添加切换。

$true

要删除它,你必须像哈希表元素

那样做
$PSDefaultParameterValues = @{"Format-Table:Autosize"=$true}

从上述文章中可以看到一些关于如何处理这些问题的相关信息。

  

$ PSDefaultParameterValues是一个首选变量,因此它仅存在于会话中       在其中设置。它没有默认值。

     

要设置$ PSDefaultParameterValues,请键入变量名称和一个或多个键值对       在命令行。

     

如果键入另一个$ PSDefaultParameterValues命令,则其值将替换原始值       值。原件未保留。

     

要为将来的会话保存$ PSDefaultParameterValues,请添加$ PSDefaultParameterValues       命令到Windows PowerShell配置文件。有关更多信息,请参阅about_Profiles。

除此之外,我不确定在动态意义上改变是否困难。您可能希望确保发送到流的数据以与$PSDefaultParameterValues.Remove("Format-Table:Autosize") 相同的方式显示在屏幕上,但您必须确保它不会影响数据,以便您无法捕获数据或将其发送管道。

您正在考虑创建自定义输出格式文件like Frode F. talks about,然后您需要考虑查看about_Format.ps1xml,但您需要为每个对象配置此项你想要以这种方式显示。

例如,

FileSystem.format.ps1xml将管理format-table -auto的输出。 Get-ChildItem更具动态性,我认为您不能在该文件中使用Format-Table