J'ai le résultat de Get-ChildItem
et je veux itérer sur ceux-ci, et afficher leurs noms. Par défaut, si j'utilise simplement Write-Host
puis je l'ai listé le long de la ligne comme ceci :
PerfLogs Program Files Program Files (x86) Python31 Temp Users Windows
Cependant, si je sais que je veux qu'il soit divisé en x colonnes, je veux que le résultat soit comme ceci :
PerfLogs Python31 Windows
Program Files Temp
Program Files (x86) Users
Comme vous pouvez le voir, la liste est d'abord établie en bas des colonnes, puis en travers.
Vous savez comment obtenir un tel résultat ? Idéalement, il faudrait utiliser le plus grand nombre de colonnes possible sur l'écran, avec le nom aligné à gauche dans chaque colonne.
MISE À JOUR : grâce à Roman, je peux maintenant avoir ma sortie 'ls' de style linux avec des couleurs de répertoire. A partir de son script mis à jour, j'ai.. :
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
}
}
Sortie :