4

如何强制使用 powershell

Format-Table -auto

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

4

1 回答 1

7

如果您每次都可以调用 cmdlet,并且您至少拥有 PowerShell v3.0,那么您可以设置一个您可以在about_Parameters_Default_Values$PSDefaultParameterValues阅读更多信息的内容。

满足您需要的语法是:

$PSDefaultParameterValues=@{"<CmdletName>:<ParameterName>"="<DefaultValue>"}

因此,我们通过将其设置为来添加开关$true

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

要删除它,您必须执行与哈希表元素相同的操作

$PSDefaultParameterValues.Remove("Format-Table:Autosize")

从上述文章这里有一些有关如何处理这些的相关信息。

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

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

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

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


除此之外,我不确定,因为在动态意义上很难改变。您会希望确保发送到流的数据以相同的方式显示在屏幕上,format-table -auto但您必须确保它不会影响数据,以便您无法捕获它或将其发送到管道中。

您正在考虑创建自定义输出格式文件,例如 Frode F. 谈到的,然后您需要考虑查看about_Format.ps1xml,但您需要为您希望以这种方式显示的每个对象进行配置。

例如,FileSystem.format.ps1xml 将管理来自Get-ChildItem. Format-Table更具动态性,我认为您不能说只Format-Table在该文件中使用。

于 2016-04-22T12:56:34.463 回答