2007-07-10

PowerShellで進捗状況を表示させる

Windows PowerShellで時間のかかる処理をするとき、 Write-Progressを使うと進捗状況を表示することができます。
// 100MB以上のファイルを表示してみる
$path      = "<フォルダ名>"
$fileCount = (Get-ChildItem -recurse $path).Length
$counter   = 0

foreach ($file in Get-ChildItem -recurse $path) {
    $counter ++;
    Write-Progress -activity "FileSerch" -status "Now Serching ..." -percentComplete ($counter / $fileCount * 100)
    
    if ($file -is [IO.FileInfo]) {
        if ($file.Length -gt 100000000) {
            Write-Output ([String]::Format("{0}({1})", $file.FullName, $file.Length))
        }
    }
}
 
これだけでコンソールにプログレスバーが表示されます。
なかなか便利な機能ですね。
 
ただし日本語がちょっと微妙な表示になりますが...。
 

0 件のコメント: