@rem videodir webm -> mp4
@rem audio acc video h264 overwrite optional
set /p videodir="directory>>> "
echo %videodir%
FOR %%i IN (%videodir%) DO %%~di
cd %videodir%
pause
set /p option="turn on overwrite? [y/n]>>> "
echo %option%
pause
IF %option%==y (
FOR /R %videodir% %%i IN (*.webm) DO ( ffmpeg -i "%%i" -y -c:a aac -c:v libx264 "%videodir%\mp4\%%~ni.mp4" )
) IF %option%==n (
FOR /R %videodir% %%i IN (*.webm) DO ( ffmpeg -i "%%i" -n -c:a aac -c:v libx264 "%videodir%\mp4\%%~ni.mp4" )
) ELSE (
echo "invaild value" )
pause
If陳述句不斷出錯。請幫幫我先生。
我試圖將這兩個D:\school.webm C:\school3.webm檔案都轉換為 mp4,但無論我打開還是關閉覆寫選項,它都會不斷引發錯誤。
uj5u.com熱心網友回復:
) IF %option%==n (
應該
) else IF %option%==n (
此外,更好的語法if /i "%option%"=="y"提供了一些針對條目的保護, y hello并/i允許不區分大小寫的匹配。
search使用該設施了解choice以及如何使用它也是一個好主意。
uj5u.com熱心網友回復:
用括號括起來的if陳述句是多余的,您只有一個命令,因此無需將它們括在括號中,實際上也不需要else。要直接修復您的錯誤,只需 IF %option%==n (換行即可。就是這樣。
但是,我會鼓勵您使用choice這些...選擇腳本,它的用途是:
@echo off
rem videodir webm -> mp4
rem audio acc video h264 overwrite optional
set /p videodir="directory>>> "
pushd "%videodir%">nul 2>&1 || (echo no such dir "%videodir%" & exit /b 1)
choice /M "Overwrite?"
if %errorlevel% equ 1 set "opt=y"
if %errorlevel% equ 2 set "opt=n"
for /R %videodir% %%i in (*.webm) do ffmpeg -i "%%i" -%opt% -c:a aac -c:v libx264 "%videodir%\mp4\%%~ni.mp4"
popd
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/451169.html
上一篇:在其他值之間創建二進制變數
