私はディレクトリ内の各ファイルに対してスクリプトを操作するために%% fを使用しようとしていましたが、スクリプトで参照するときは%% fと%%〜nfはそうではありません働いているようだ。私はプログラミングの経験が限られています。私はthis video formatting tutorialのもっと便利なバージョンを作ろうとしています。バッチストア%% fを変数として
私はどのように動作することはできませんが、私は%% fと%%〜nfをスクリプトの残りの部分を参照する変数として保存したいと思います。
@echo off
set /p FORMAT="Enter File Format: "
FOR %%f IN (*.%FORMAT%) DO echo %%f
set TEST=%%f
echo %TEST%
cmd/k
私はこれらを保存することができれば、それは私の問題を解決するだろうが、しかし、これは私が何をしようとしているの長い形で、このスクリプトは、私は、ユーザーを持っている場合、変数にファイルを手動で入力して動作します(% VIDEO%= %% f、%〜nf)。これは理想とはほど遠いですが。
@echo off
set /p FORMAT="Enter File Format: "
FOR %%f IN (*.%FORMAT%) DO (
::IDFILE
for /F "delims=" %%I in ('C:\ffmpeg\bin\ffprobe.exe -v error -show_entries format^=filename -of default^=noprint_wrappers^=1:nokey^=1 "%%f"') do set "FILENAME=%%I"
for /F "delims=" %%I in ('C:\ffmpeg\bin\ffprobe.exe -v error -select_streams v:0 -show_entries stream^=codec_name -of default^=noprint_wrappers^=1:nokey^=1 "%%f"') do set "Vcodec=%%I"
for /F "delims=" %%I in ('C:\ffmpeg\bin\ffprobe.exe -v error -select_streams a:0 -show_entries stream^=codec_name -of default^=noprint_wrappers^=1:nokey^=1 "%%f"') do set "Acodec=%%I"
echo %FILENAME% is using %Vcodec% and %Acodec% codecs
if %Vcodec% == h264 (echo DO NOT CONVERT VIDEO) else (echo CONVERT VIDEO)
if %Acodec% == ac3 (echo DO NOT CONVERT AUDIO) else (echo CONVERT AUDIO)
timeout /t 5
:: COPY V FIX A
if %Vcodec% == h264 if not %Acodec% == ac3 (echo Copying Video, Converting Audio
timeout /t 5
C:\ffmpeg\bin\ffmpeg.exe -i "%%f" -map 0 -vcodec copy -scodec copy -acodec ac3 -b:a 640K "%%~nf"-AC3.mkv)
:: FIX V COPY A
if not %Vcodec% == h264 if %Acodec% == ac3 (echo Converting Video, Copying Audio
timeout /t 5
C:\ffmpeg\bin\ffmpeg.exe -i "%%f" -map 0 -vcodec libx264 -scodec copy -acodec copy "%%~nf-"h264.mkv)
:: FIX V FIX A
if not %Vcodec% == h264 if not %Acodec% == ac3 (echo Converting Video, Converting Audio
timeout /t 5
C:\ffmpeg\bin\ffmpeg.exe -i "%%f" -map 0 -vcodec libx264 -scodec copy -acodec ac3 -b:a 640K "%%~nf"-h264-AC3.mkv)
:: COPY V COPY A
if %Vcodec% == h264 if %Acodec% == ac3 (echo "Doesn't require any Conversion")
)
pause
cmd/k
本当に助けてくれてありがとうございます。実際の変換名の部分に%%〜n1を使用しようとすると、正しく読み込まれていないようですが、%%〜n1を使ってみました。 ':: COPYのVのFIX %Vcodecの%の== H264ない場合は%Acodec%== AC3()も "" なしで試してみました( "N1〜%%" オーディオ エコーを変換、ビデオのコピーエコー 一時停止 場合C:\ ffmpeg \ bin \ ffmpeg.exe -i "%1" -map 0 -vcodecコピー-scodecコピー-acodec ac3 -b:640K "%%〜nf" -AC3.mkv) ' そしてそれ'%%〜n1' 'または' %%〜n1 'を読み戻し、%%〜n1というファイルになります – RyanMe321