如何让PowerShell中ls命令不再显示"Directory:"头部信息?
解决PowerShell中
ls命令重复显示目录头部的问题 这里提供两种可行的解决思路,根据你的需求选择:
方法一:快速自定义ls函数(输出文本,不保留对象)
如果不需要后续对输出结果进行管道对象操作,直接自定义ls函数,用Format-Table隐藏冗余的目录标题和表头:
function global:ls { # 调用Get-ChildItem并传递所有参数,格式化输出时隐藏表头 Get-ChildItem @args | Format-Table Mode, LastWriteTime, Length, Name -HideTableHeaders }
把这段代码放到PowerShell配置文件($PROFILE)里,就能永久生效。
方法二:修改格式数据(保留对象,支持后续管道操作)
如果需要输出结果仍为可操作的对象,就需要修改PowerShell的格式定义文件:
- 创建一个名为
CustomFileFormat.ps1xml的文件,内容如下:
<?xml version="1.0" encoding="utf-8"?> <Configuration> <ViewDefinitions> <View> <Name>customDirectoryView</Name> <ViewSelectedBy> <TypeName>System.IO.DirectoryInfo</TypeName> </ViewSelectedBy> <TableControl> <TableHeaders> <TableColumnHeader> <Label>Mode</Label> <Width>7</Width> </TableColumnHeader> <TableColumnHeader> <Label>LastWriteTime</Label> <Width>25</Width> </TableColumnHeader> <TableColumnHeader> <Label>Length</Label> <Width>10</Width> </TableColumnHeader> <TableColumnHeader> <Label>Name</Label> </TableColumnHeader> </TableHeaders> <TableRowEntries> <TableRowEntry> <TableColumnItems> <TableColumnItem> <PropertyName>Mode</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>LastWriteTime</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>Length</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>Name</PropertyName> </TableColumnItem> </TableColumnItems> </TableRowEntry> </TableRowEntries> </TableControl> </View> <View> <Name>customFileView</Name> <ViewSelectedBy> <TypeName>System.IO.FileInfo</TypeName> </ViewSelectedBy> <TableControl> <TableHeaders> <TableColumnHeader> <Label>Mode</Label> <Width>7</Width> </TableColumnHeader> <TableColumnHeader> <Label>LastWriteTime</Label> <Width>25</Width> </TableColumnHeader> <TableColumnHeader> <Label>Length</Label> <Width>10</Width> </TableColumnHeader> <TableColumnHeader> <Label>Name</Label> </TableColumnHeader> </TableHeaders> <TableRowEntries> <TableRowEntry> <TableColumnItems> <TableColumnItem> <PropertyName>Mode</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>LastWriteTime</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>Length</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>Name</PropertyName> </TableColumnItem> </TableColumnItems> </TableRowEntry> </TableRowEntries> </TableControl> </View> </ViewDefinitions> </Configuration>
- 在PowerShell中加载这个自定义格式文件:
Update-FormatData -PrependPath .\CustomFileFormat.ps1xml
- 要永久生效,把上面的
Update-FormatData命令添加到你的PowerShell配置文件($PROFILE)中。
原理说明
PowerShell通过.ps1xml格式文件定义不同类型对象的显示规则,默认的System.IO.DirectoryInfo视图会输出当前目录路径作为标题。上面的方法要么直接绕过默认格式输出文本,要么替换掉默认的视图配置,从而去掉冗余的目录头部。
内容的提问来源于stack exchange,提问作者steve02081504
相关产品推荐
相关产品推荐

