У меня есть результат Get-ChildItem
, и я хочу повторить их и показать их имена. По умолчанию, если я просто использую Write-Host
тогда я получаю его в списке вдоль строки, как это:Как написать список, отсортированный лексикографически в сетке, указанной столбцом?
PerfLogs Program Files Program Files (x86) Python31 Temp Users Windows
Однако, сказать, что я знаю, что я хочу разделить на х колонок, я хочу, выход, как это вместо:
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 -by-columns –