ディレクトリ内の各ファイルに対して外部プログラム ( SoX )を呼び出すスクリプトがあります。SoX への各呼び出しWrite-Progress
の前に呼び出していますが、進行状況バーは SoX の出力によってコンソール バッファーの上部から押し出されます (コンソールのサイズに関係なく)。これを避けるためにできることはありますか?
スクリプトは次のとおりです。
$audioFiles = ls -Exclude *.ps1 | ? { !$_.PSIsContainer }
foreach ($audioFile in $audioFiles)
{
$i++
Write-Progress -Activity "Transforming Audio" -Status $audioFile.Name -PercentComplete (($i / @($audioFiles).length) * 100)
& 'C:\Program Files (x86)\sox-14-4-0\sox.exe' "$audioFile" ('Fast/' + $audioFile.Name) -S -G tempo -s 1.3
}
Write-Progress -Activity "Transforming Audio" -PercentComplete 100 -Completed
[void] [Reflection.Assembly]::LoadWithPartialName(“System.Windows.Forms”)
[windows.forms.messagebox]::show(“All done!”)