Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


алгоритм конечно тот еще, бессвязный, неточный, имена все обобщены (ну сочту на то что составлялся пол пятого утра), например как может быть: d:\Mr. Nobody (2009).mkv, какое же следующее имя подобного файла?
я делал:
d:\Mr. Nobody (2009)_A.mkv
d:\Mr. Nobody (2009)_B.mkv
c srt не совсем понятно, я искал по всей глубине и сравнивал по имени из пути с одноименными искомыми, но есть вероятность совпадения имен, если по глубине есть несколько одинаковых по имени файлов, это уже не учитывал.
поставил пока copy вместо move
Код: Выделить весь код
@echo off
set "dI=D:\Process"
set "dO=D:"

for /f "delims=" %%F in ('dir /a-d/b/s "%dI%\*.mkv" "%dI%\*.mp4"') do (
  for /f "delims=" %%M in ('"%MediaInfo% --Inform=Video;%%FrameRate_Mode%% "%%F""') do (
    for /f "delims=" %%R in ('"%MediaInfo% --Inform=Video;%%FrameRate%% "%%F""') do (
      if "%%M"=="VFR" if "%%R"=="23.976" (
        for /f "delims=" %%f in ('"echo Команда на преобразование "%%F" из VFR в CFR"') do (
          call :#1 "%%f" "%dI%" "%dO%"
        )
      )
      if "%%M"=="CFR" if "%%R"=="23.976" (
        call :#1 "%%F" "%dI%" "%dO%"
      )
      if "%%M"=="VFR" if not "%%R"=="23.976" (
        for /f "delims=" %%f in ('"echo Команда на преобразование "%%F" не понял во что"') do (
          call :#2 "%%f" "%dI%" "%dO%" "%%R"
        )
      )
      if "%%M"=="CFR" if not "%%R"=="23.976" (
        call :#2 "%%F" "%dI%" "%dO%" "%%R"
      )
    )
  )
)
pause& exit

:#1 [full *.(mkv,mp4)] [D:\Process] [D:]
  for /f "tokens=1,2 delims=()" %%a in ("%~1") do (
    copy "%~1" "%~3\%%~na(%%b)_%~nx1"
    for /f "delims=" %%F in ('dir /a-d/b/s "%~2\*.srt"') do if exist "%%~dpF%~n1%%~xF" (copy "%%F" "%~3\%%~na(%%b)_%%~nxF")
  )
exit /b

:#2 [full *.(mkv,mp4)] [D:\Process] [D:] [no=23.976]
  for /f "tokens=1,2 delims=()" %%a in ("%~1") do (
    if not exist "%~3\%~4" md "%~3\%~4"
    copy "%~1" "%~3\%~4\%%~na(%%b)_%~nx1"
    for /f "delims=" %%F in ('dir /a-d/b/s "%~2\*.srt"') do if exist "%%~dpF%~n1%%~xF" (copy "%%F" "%~3\%~4\%%~na(%%b)_%%~nxF")
  )
exit /b

Последний раз редактировалось alpap, 13-03-2021 в 03:14.

Это сообщение посчитали полезным следующие участники:

Отправлено: 01:30, 13-03-2021 | #6