Guo*_*uai 13 windows powershell
我不希望ls( Get-ChildItem)的输出在 Powershell 中是垂直的(一个文件一行)。我希望它是水平的(就像 Linux 中的表格)。在网上搜索后,我不知道该怎么做。
并且ls -n | Format-Table不起作用。它仍然是垂直的。
我的母语不是英语,所以请原谅我的一些语法错误。
Mat*_*son 10
如果您安装了适用于 Linux 的 Windows 子系统 (WSL),则可以ls直接调用。
打字
wsl ls
Run Code Online (Sandbox Code Playgroud)
实际上调用 linux ls 命令并为您提供与在 linux 上找到的相同输出。
您可以更新“ls”别名,以便它始终使用 Powershell 的“Set-Alias”来调用它。在 Powershell 配置文件 (Microsoft.PowerShell_profile.ps1) 中执行以下操作:
function ls_alias { wsl ls --color=auto -hF $args }
Set-Alias -Name ls -Value ls_alias -Option AllScope
Run Code Online (Sandbox Code Playgroud)
这还允许您传入其他参数,例如显示所有文件:
ls -a
Run Code Online (Sandbox Code Playgroud)
但请注意:您必须传入 Unix 样式的路径,而不是 Windows 路径,否则将无法识别。例如,这个:
ls /mnt/c/tmp/my_file
Run Code Online (Sandbox Code Playgroud)
但不是:
ls C:\tmp\my_file
Run Code Online (Sandbox Code Playgroud)
我不确定您为什么要在 Windows 上执行此操作或期望在 Windows 上列出 Linux 文件系统。然而,这已经接近尾声了,因为它本身就带有 Windows PowerShell。
#Collect the path listing, split on the line feed, join with a space delimiter
(ls -n) -split "`n" -join " "
Run Code Online (Sandbox Code Playgroud)
Windows 文件系统只是按照设计本身不会以这种方式列出文件,Windows PowerShell 的目标不是模仿其他操作系统的文件系统所做的。Windows 文件系统将使用其原生的单个字符串列表,设计而不是 *NIX 中的类似表格的视图。文件或目录也没有颜色突出显示。
在你问之前,不,你不能只对我展示的内容使用 Format-Table。如果您想要这种外观,那么您需要为 LS/GCI 编写自己的包装器,或者在 *NIX 或 OSX 上使用 PoSHv6,或者使用其他响应中指出的“ls”端口,或者如果您使用的是 Win10,请启用 WSL( Linux 上的 Bash),只需使用 WSL 而不是 Win PoSH。
您当然也可以只选择文件或目录列表。
(ls -n -directory) -split "`n" -join " "
(ls -n -file) -split "`n" -join " "
Run Code Online (Sandbox Code Playgroud)
您可以使用 Format-Wide cmdlet,具体取决于您使用的 PoSH 版本。
ls | Format-Wide -Column 5
Run Code Online (Sandbox Code Playgroud)
但是你不能做的是...
ls -n | Format-Wide -Column 5
Run Code Online (Sandbox Code Playgroud)
...它会失败,没有解决方法。
你必须做这样的事情......工作。
ls | Format-Wide -Column 5 -Property Name
Run Code Online (Sandbox Code Playgroud)
...因为它是执行此操作的 Format-Wide cmdlet
尝试这个命令:
Get-ChildItem $args -Exclude .* | Format-Wide Name -AutoSize
Run Code Online (Sandbox Code Playgroud)
您始终可以在 Powershell 配置文件 (Microsoft.PowerShell_profile.ps1) 中添加别名:
function l { Get-ChildItem $args -Exclude .* | Format-Wide Name -AutoSize }
Run Code Online (Sandbox Code Playgroud)
或者,如果您也想查看隐藏文件:
Get-ChildItem $args -Force | Format-Wide Name -AutoSize
Run Code Online (Sandbox Code Playgroud)
如果您想知道这里发生了什么,这些是基本的 Powershell 命令。是和Get-ChildItem的基本命令。获取一个列表并格式化它。dirlsFormat-Wide
| 归档时间: |
|
| 查看次数: |
23915 次 |
| 最近记录: |