Ich habe das Ergebnis Get-ChildItem
, und ich möchte über diese iterieren und ihre Namen anzeigen. Standardmäßig einfach, wenn ich Write-Host
verwenden dann bekomme ich es entlang der Zeile wie folgt aufgelistet out:Wie schreibe ich eine Liste lexikographisch in einem Raster sortiert nach Spalten?
PerfLogs Program Files Program Files (x86) Python31 Temp Users Windows
jedoch sagen, dass ich weiß, ich will es in x Spalten aufgeteilt, ich die Ausgabe so wollen statt:
PerfLogs Python31 Windows
Program Files Temp
Program Files (x86) Users
Wie Sie sehen können, listet es die Spalten zuerst und dann quer auf.
Irgendeine Idee, wie man so ausgegeben wird? Idealerweise würde es die meisten # Spalten verwenden, die auf den Bildschirm passen, wobei der Name in jeder Spalte nach links ausgerichtet ist.
UPDATE: Dank Roman, kann ich jetzt meine Linux-Stil 'ls' Ausgabe mit Verzeichnisfarben. Aufbauend auf seiner aktualisierten Skript Ich habe:
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
}
}
Ausgang:
http://dl.dropbox.com/u/2809/lscolor.png
Ich bin froh, dass Sie das aktualisierte Skript genau in einer Art und Weise wiederverwendet es für entworfen wurde. Danke für die inspirierende Idee. Es wäre schön, wenn PowerShell dies eingebaut hat, habe ich den Vorschlag eingereicht: https://connect.microsoft.com/PowerShell/feedback/details/620452/format-wide-add-an-option-to-output -von-Spalten –