Я генерирую html с помощью командного файла для личного использования, и в одном из моих разделов я получаю ширину и высоту всех файлов mp4 в папке. В этой "библиотеке mp4" файлы могут быть заменены, переименованы, добавлены или извлечены и т. Д. c ... поэтому я не хочу вручную вводить ширину и высоту каждый раз, когда она обновляется.
Этот код ниже работает, но он очень медленный ... есть ли способ ускорить его с помощью командного файла?
for /f %%g in ('dir /B /S *.mp4') do (
set "g=%%g"
set "g=!g:\=/!"
for /f "tokens=1 delims=x" %%a in ('ffprobe -v error -select_streams v:0 -show_entries stream^=width^,height -of csv^=s^=x:p^=0 %%g') do set sW=%%a
for /f "tokens=2 delims=x" %%b in ('ffprobe -v error -select_streams v:0 -show_entries stream^=width^,height -of csv^=s^=x:p^=0 %%g') do set sH=%%b
echo %TAB% %TAB% ^<span^>^ ^<a style="text-decoration:none" class="image" href="file:///!g!" target="_blank"^>^ ^<video width="!sW!" height="!sH!" poster="file:///S:/_Stuff/_Data/_o/6.gif" poster="file:///S:/_Stuff/_Data/_o/6.gif" preload="auto" muted autoplay loop^>^ ^<source src="file:///!g!" type="video/mp4"^>^ ^</video^>^ ^</a^>^ ^</span^>^ >> _01.html 2>nul
)
** ОБНОВЛЕНИЕ: Я пробовал это, и он работает, потребовалось 4 секунд против 11 секунд, но я только что заметил новый ответ, поэтому сейчас попробую это предложение!
@echo off
setlocal EnableDelayedExpansion
>_output_test.txt (for /f %%g in ('dir /B /S *.mp4') do (
set "g=%%g"
set "g=!g:\=/!"
REM @echo !g!
for /f "tokens=1,2 delims=x" %%a in ('ffprobe -v error -select_streams v:0 -show_entries stream^=width^,height -of csv^=s^=x:p^=0 %%g') do (
set sW=%%a
set sH=%%b
)
REM @echo !sW!
REM @echo !sH!
@echo %TAB% %TAB% ^<span^>^ ^<a style="text-decoration:none" class="image" href="file:///!g!" target="_blank"^>^ ^<video width="!sW!" height="!sH!" poster="file:///S:/_DaveStuff/_Data/_o/6.gif" preload="auto" muted autoplay loop^>^ ^<source src="file:///!g!" type="video/mp4"^>^ ^</video^>^ ^</a^>^ ^</span^>^
)
)
endlocal
pause
exit