の結果があり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
ご覧のとおり、最初に列の下にリストされ、次に列全体にリストされます。
そのような出力を取得する方法はありますか?理想的には、名前が各列の左側に配置された状態で画面に収まるように、最も多くの列を使用します。
更新:Romanのおかげで、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
}
}
出力: