Szukam komendy / skryptu, aby przeskanować mój wyznaczony folder, połączyć pliki srt (o tej samej nazwie co wideo) z plikami avi / mp4 / mkv, aby uzyskać pliki mkv, a następnie usunąć oryginalne pliki (wideo i napisy).
Teraz mam ten kod (nie mój, od niektórych autorów, których połączyłem):
@echo off
for /R %%A IN (*.mkv *.avi *.mp4) do (
"C:\Program Files\MKVToolNix\mkvmerge.exe" -o "%%~nxA_CZ.mkv" "%%~A" "%%~nA.srt"
if errorlevel 1 (
echo Warnings/errors generated during remuxing, original file not deleted
) else (
del /f "%%A" "%%~nA.srt"
echo Successfully remuxed to "%%~dpna (No Subs)%%~xa", original file deleted
)
echo.
)
)
)
Który rodzaj działa, ale mam kilka problemów. Parametr nie działa, nie wiem dlaczego, ale kiedy umieścić go w folderze z podkatalogów tylko skanuje pliki srt w nim i dostaję „nie można otworzyć” błąd. (Ten błąd pojawia się również w przypadku plików w jednym folderze, ale ostatecznie robi to, czego potrzebuję.)/R
Masz pomysł, jak rozwiązać mój problem?
FOR /F "TOKENS=*" %%A IN
pętli przy użyciu('DIR /A-D /B /S "C:\Root"')
, a następnie użyć wyjścia, że z pewnej logiki, aby wyłowić z.mp4
,.avi
oraz.mkv
plików zDO
poleceniem. Używając czegoś podobnegoIF [%%~XA]==[.mkv]
itp., A następnie powiedz mu, aby odpowiednio wykonałmkvmerge.exe
operację. Z niektórymi testami możesz to zrobić, więc zabierz się do pracy i odpisz mi, jeśli chcesz odpowiedzi wyjaśniającej, ale spróbuj tego z tym krótkim pomysłem.