我有Get-ChildItem
的結果,我想遍歷這些,並顯示它們的名稱。默認情況下,如果我只是使用Write-Host
然後我得到它沿行這樣羅列出來:如何編寫按列按列編排順序排列的列表?
PerfLogs Program Files Program Files (x86) Python31 Temp Users Windows
然而,說,我知道我想要它分成X列,我希望輸出這樣的代替:
PerfLogs Python31 Windows
Program Files Temp
Program Files (x86) Users
正如您所看到的,它首先在列中列出,然後跨過列。
任何想法如何得到這樣的輸出?理想情況下,它將使用最適合屏幕的列數,並且每列中的名稱都對齊左側。
更新:感謝羅馬,我現在可以有我的Linux風格與目錄顏色的'ls'輸出。建立了他的更新後的腳本我有:
function color-ls
{
dir $args | Format-High -Print {
$item = $args
$fore = $host.UI.RawUI.ForegroundColor
$host.UI.RawUI.ForegroundColor = .{
if ($item[1].psIsContainer) {'Blue'}
elseif ($item[1].Extension -match '\.(exe|bat|cmd|ps1|psm1|vbs|rb|reg|dll|o|lib)') {'Red'}
elseif ($item[1].Extension -match '\.(zip|tar|gz|rar)') {'Yellow'}
elseif ($item[1].Extension -match '\.(py|pl|cs|rb|h|cpp)') {'Cyan'}
elseif ($item[1].Extension -match '\.(txt|cfg|conf|ini|csv|log|xml)') {'Green'}
else {$fore}
}
write-host $args[0] -NoNewLine
$host.UI.RawUI.ForegroundColor = $fore
}
}
輸出:
http://dl.dropbox.com/u/2809/lscolor.png
我很高興你在某種程度上,它是專爲精確地重複使用更新後的腳本。感謝你的鼓舞人心的想法。這將是很好,如果PowerShell有這個內置的,我已經提交了建議: https://connect.microsoft.com/PowerShell/feedback/details/620452/format-wide-add-an-option-to-output逐列 – 2010-11-10 05:30:24