如何强制使用PowerShell
Format-Table -auto
作为将返回的对象数组写入控制台时的默认格式? 感谢
答案 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
。