我正在嘗試編寫我的第一個PowerShell GUI。基本上我試圖運行一個ffmpeg
命令,這是好的,但我無法運行進度條。 (我是全新的)這是我的嘗試。PowerShell進度條不會顯示
cd C:\Users\brett\Documents\convert
$cmd = 'ffmpeg.exe'
$arg0 = '-i'
$arg1 = 'MASH_01.ts'
$arg2 = '-c:v'
$arg3 = '-c:a'
$arg4 = 'MASH_01.mp4'
$cf = 'copy'
$isFile = 'MASH_01.mp4'
if (-not(Test-Path -Path $isFile) -eq $false) {
echo "Shit Go"
del $isFile
& $cmd $arg0 $arg1 $arg2 $cf $arg3 $cf $arg4
for ($i = 1; $i -le 100; $i++) {
Start-Sleep -m 100
Write-Progress -Activity 'Progress Of The Coversion' -Status "$i Percent Complete" -PercentComplete $i;
}
} else {
& $cmd $arg0 $arg1 $arg2 $cf $arg3 $cf $arg4
for ($i = 1; $i -le 100; $i++) {
Start-Sleep -m 100
Write-Progress -Activity 'Progress Of The Coversion' -Status "$i Percent Complete" -PercentComplete $i;
}
}
更新:沒有錯誤輸出,我可以看到,但該文件已被處理後,不會在進度條運行。
這裏是我的最新嘗試..但現在我得到的ffmpeg說: 「M」 不是一個有效的開關
cd C:\Users\brett\Documents\convert
$oldVideo = Get-ChildItem -Include @("*.ts")
Write-Host -ForegroundColor Green -Object $ArgumentList;
# Pause the script until user hits enter
$isFile = 'MASH_01.mp4'
if(-not(Test-Path -Path $isFile) -eq $false) {
echo "Shit Go"
del $isFile
}a
$tool = ffmpeg.exe
$ArgumentList = '`-i'+' '+'MASH_01.ts'+' '+'-c:v'+' '+'copy'+' '+'-c:a'+' '+'copy'+' '+'MASH_01.mp4';
Invoke-Expression $tool $ArgumentList
for($i = 1; $i -le 100; $i++){
ffmpeg $ArgumentList -m 100
Write-Progress -Activity 'Progress Of The Coversion' -Status "$i Percent Complete" -PercentComplete $i
`-SecondsRemaining $a -CurrentOperation
"$i% complete" `
}
你有語法錯誤?你的堆棧跟蹤變量爲'$ i0' – arco444
是的,我刪除了0,但仍然沒有運氣 – Brett
arco444 scipt運行,但只在PowerShell內部,進度條在文件處理後運行。不像它應該處理,因爲它應該 – Brett