Цитата megaloman:
как будет выглядеть код, если допустим исходных папок с файлами несколько »
|
Я неверное снова что-то сделал не так, но данный варианту меня не работает.
Суть такова:
В папке "d:\uTorrent\work\(WRKD)\LostFilm\" лежит главный файл, а в папке "d:\uTorrent\work\(WRKD)\LostFilm\aud\" дополнительный. В папке же "d:\uTorrent\work\(WRKD)\" должен оказаться итоговый файл после обработки с именем файла как в "d:\uTorrent\work\(WRKD)\LostFilm\"
Скрытый текст
Код:

@Echo Off
cls
chcp 1251 >nul
Set "LogBat=%~dpnx0.log"
>"%LogBat%" Echo %Date% %Time%
Call :Process "d:\uTorrent\work\(WRKD)\LostFilm" "d:\uTorrent\work\(WRKD)" "mkv" "mkv"
Call :Process "d:\uTorrent\work\(WRKD)\LostFilm\aud\" "d:\uTorrent\work\(WRKD)\LostFilm\Temp1" "mkv" "mkv"
pause
GoTo :Eof
:Process
Set "BoxIn=%~1"
Set "BoxOut=%~2"
Set "ExtIn=%~3"
Set "ExtOut=%~4"
If Not Exist "%BoxOut%" Md "%BoxOut%"
Set /A NNN=11
FOR /F "usebackq delims=" %%f IN (`2^>nul Dir "%BoxIn%\*.%ExtIn%" /b /a:-d /O:D`) DO (
>>"%LogBat%" (Echo: &Echo === begin "%BoxIn%\%%f")
Call :MyMove "%BoxIn%\%%f" "%BoxIn%\%NNN%.%ExtIn%"
Del "%BoxOut%\%NNN%.%ExtOut%" >nul 2>&1
"C:/Soft/!Video/MKVtoolnix-29.0.0\mkvmerge.exe" --ui-language ru --output ^"D:\uTorrent\work\^(WRKD^)\11.mkv^" --language 0:eng --default-track 0:yes --language 1:eng --default-track 1:no --sub-charset 2:UTF-8 --language 2:eng ^"^(^" ^"D:\uTorrent\work\^(WRKD^)\LostFilm\11.mkv^" ^"^)^" --audio-tracks 1 --no-video --language 1:rus --track-name 1:LostFilm --default-track 1:yes --forced-track 1:yes --sync 1:-9250 ^"^(^" ^"D:\uTorrent\work\^(WRKD^)\LostFilm\aud\11.mkv^" ^"^)^" --track-order 0:0,1:1,0:1,0:2
Call :MyMove "%BoxIn%\%NNN%.%ExtIn%" "%BoxIn%\%%f"
Call :MyMove "%BoxOut%\%NNN%.%ExtOut%" "%BoxOut%\%%~nf.%ExtOut%"
)
GoTo :Eof
:MyMove
If Not Exist %1 (
>>"%LogBat%" Echo --- not found %1
Exit /B 2
)
>>"%LogBat%" 2>&1 Move /Y %1 %2
If Exist %2 (
>>"%LogBat%" Echo +++ success Move /Y %1 %2
) Else (
>>"%LogBat%" Echo --- failure Move /Y %1 %2
>>"%LogBat%" Echo --- failure Move /Y %1 %2
)
GoTo :Eof