如何强制使用 powershell
Format-Table -auto
作为将返回的对象数组写入控制台时的默认格式?谢谢
如果您每次都可以调用 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
在该文件中使用。