タスクの実行中に進捗を視覚的に表示するのがプログレスバーです。
この記事では、PowershellのWrite-Progressコマンドレットを使用して、プログレスバーを表示する方法について説明します。
参考: Write-Progress (Microsoft.PowerShell.Utility) - PowerShell | Microsoft Learn
Write-Progressコマンドレッドを使用した基本的な使い方
PowerShellでは、Write-Progressコマンドレットを使用してプログレスバーを表示できます。このコマンドレットは、タスクの進行状況を示すためのプログレスバーを出力します。このプログレスバーには、タスクの完了率やタスクの名前などの情報が表示されます。
以下のコードは、10回のループ処理を行いながら、進行状況をプログレスバーで表示します。
for ($i = 1; $i -le 10; $i++) {
Write-Progress -Activity "Processing" -Status "Processing Item $i" -PercentComplete ($i * 10)
Start-Sleep -Seconds 1
}
ここでは、「$i」を1から10までループさせ、「PercentComplete」パラメータを指定することで、パーセント表示のプログレスバーを表示しています。
3行目の「Start-Sleep」コマンドレッドを使用し、1秒ごとに進行状況を更新しています。
■実行画面
詳細なカスタマイズ
Write-Progressコマンドレットは、さまざまなパラメーターを使用してプログレスバーの外観や動作をカスタマイズできます。
$progressPreference = "Continue" # 進捗バーを常に表示
for ($i = 1; $i -le 100; $i++) {
Write-Progress -Activity "Processing" -Status "Processing Item $i" -PercentComplete ($i)
Start-Sleep -Milliseconds 100
}
ここでは、進行状況を1%単位で表示し、100回のループが完了するまで進行状況を示します。また、進捗バーを常に表示するために、$progressPreference変数を設定しています。
■実行画面
まとめ
今回は、PowershellのWrite-Progressコマンドレットを使用して、プログレスバーを表示する方法について説明しました。