Пункт 1 из вашего заключения:
Вместо того чтобы выбирать только форматы файлов .mkv, .mp4 и .avi, скрипт выбирает все типы файлов.
Ясно из команды
dir *.mp4,*.mkv,*.avi /b /s /a-d %1
Это инициирует 4 сканирования, 3 из текущего каталога с соответствующими расширениями и одно для переданного значения% 1
Я предлагаю вам сначала сделать, CD /D "%~1"
чтобы каталог работал из этого места.
@echo off setlocal CD /D "%~1" :: Create numbered list of files in a temporary file set "tempFile=%temp%\%~nx0_fileList_%time::=.%.txt" dir /b /s /a-d *.mp4,*.mkv,*.avi | findstr /n "^" >"%tempFile%" & REM "