upd

出自Tsetien’s Wiki
跳至導覽 跳至搜尋

A tiny little script that is used to update many but not all of my command line applications. It requires itself and qe.bat to be properly put into a folder set in %PATH% (here in my case is C:\_c\), with where 7-zip is installed is included in %PATH% as well. Similar to qe, it may be subject to frequent revisions.

By default, if no switch is given to the script, it will download (from their official sites of course) and extract the command line applications as follows, and move them—overwrite if necessary, hence, update—to the aforesaid fixed folder set in %PATH%:

If -d is passed to the script, then it will only update the following three:

And if -a is passed to the script, then all of the following 19 will be downloaded, extracted, and put into the said folder in %PATH%, which actually served as an initial deployment of this set of applications:

Using -0 with any one or more switches below can specifically update the manually selected application or applications only:

  • -dn: deno;
  • -e: exiftool;
  • -f: ffmpeg;
  • -g: gallery-dl;
  • -i: ImageMagick;
  • -ft: fart;
  • -j: libjxl;
  • -l: flac;
  • -m: mpv;
  • -n: Nero AAC Codec;
  • -o: opus-tools;
  • -p: optipng;
  • -pd: pandoc;
  • -q: qaac;
  • -qf: qtfiles64;
  • -r: Resource Hacker;
  • -rw: rustormy;
  • -s: sox;
  • -w: libwebp; and
  • -y: yt-dlp.

Use double hyphens to explicitly exclude applications from any pre-written update set. For example, upd -a --e will update all but exiftool.

An upd-dry.bat is enclosed below the main batch to serve as a separate 『dry-run』 tool to test if the download links and filenames could be fetched correctly—and if not, revise and test them in the dry-run batch before merging the updated code with the main batch—and it is for this very reason, this separate batch stays separate, although it could be integrated with the main batch. It can be invoked by the main batch via upd -dry, or simply run it separately by itself.

A special note on the choice of ffmpeg’s build: the script will take yt-dlp’s modified ffmpeg build by default; it can be reverted back to the official build by passing -forig to the script; or, if some non-free codecs are desired, passing -fnonf to the script can further change the build to the nanake’s.

The batches

NB
These two batches use curl, which has only been shipped natively since Windows 10 1803; for earlier versions of Windows—as early as Windows Vista—you’ll have to download curl and put it into %PATH% first.
upd.bat
@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion
set "a="
set "d="
set "t="
set "v="
set "dn=1"
set "e=1"
set "f=1"
set "g=1"
set "ft="
set "i=1"
set "j="
set "l="
set "m=1"
set "n="
set "o="
set "p="
set "pd="
set "q="
set "qf="
set "r="
set "rw="
set "s="
set "w="
set "y=1"
set "el="
set "en="
set "fl="
set "fn="
set "fnl="
set "fnn="
set "fyl="
set "fyn="
set "forig="
set "fnonf="
set "il="
set "in="
set "ll="
set "ln="
set "ml="
set "mn="
set "nl="
set "nn="
set "ol="
set "on="
set "pdl="
set "pdn="
set "pl="
set "pn="
set "ql="
set "qn="
set "rl="
set "rn="
set "sl="
set "sn="
set "wl="
set "wn="
:a
if /i "%~1"=="" goto p
set "a=%~1"
if /i "%a%"=="-dry" cmd /c upd-dry && exit /b 0
if /i "%a%"=="-0" set "dn=" & set "e=" & set "f=" & set "g=" & set "ft=" & set "i=" & set "j=" & set "l=" & set "m=" & set "n=" & set "o=" & set "pd=" & set "p=" & set "q=" & set "qf=" & set "r=" & set "rw=" & set "s=" & set "w=" & set "y="
if /i "%a%"=="-dn" set "dn=1"
if /i "%a%"=="-e" set "e=1"
if /i "%a%"=="-f" set "f=1"
if /i "%a%"=="-g" set "g=1"
if /i "%a%"=="-forig" set "forig=1"
if /i "%a%"=="-fnonf" set "fnonf=1"
if /i "%a%"=="-ft" set "ft=1"
if /i "%a%"=="-i" set "i=1"
if /i "%a%"=="-j" set "j=1"
if /i "%a%"=="-l" set "l=1"
if /i "%a%"=="-m" set "m=1"
if /i "%a%"=="-n" set "n=1"
if /i "%a%"=="-o" set "o=1"
if /i "%a%"=="-pd" set "pd=1"
if /i "%a%"=="-p" set "p=1"
if /i "%a%"=="-q" set "q=1"
if /i "%a%"=="-qf" set "qf=1"
if /i "%a%"=="-r" set "r=1"
if /i "%a%"=="-rw" set "rw=1"
if /i "%a%"=="-s" set "s=1"
if /i "%a%"=="-w" set "w=1"
if /i "%a%"=="-y" set "y=1"
if /i "%a%"=="-d" set "dn=" & set "e=" & set "f=1" & set "g=1" & set "ft=" & set "i=" & set "j=" & set "l=" & set "m=" & set "n=" & set "o=" & set "pd=" & set "p=" & set "q=" & set "qf=" & set "r=" & set "rw=" & set "s=" & set "w=" & set "y=1"
if /i "%a%"=="-a" set "dn=1" & set "e=1" & set "f=1" & set "g=1" & set "ft=1" & set "i=1" & set "j=1" & set "l=1" & set "m=1" & set "n=1" & set "o=1" & set "pd=1" & set "p=1" & set "q=1" & set "qf=1" & set "r=1" & set "rw=1" & set "s=1" & set "w=1" & set "y=1"
if /i "%a%"=="--dn" set "dn="
if /i "%a%"=="--e" set "e="
if /i "%a%"=="--f" set "f="
if /i "%a%"=="--g" set "g="
if /i "%a%"=="--ft" set "ft="
if /i "%a%"=="--i" set "i="
if /i "%a%"=="--j" set "j="
if /i "%a%"=="--l" set "l="
if /i "%a%"=="--m" set "m="
if /i "%a%"=="--n" set "n="
if /i "%a%"=="--o" set "o="
if /i "%a%"=="--pd" set "pd="
if /i "%a%"=="--p" set "p="
if /i "%a%"=="--q" set "q="
if /i "%a%"=="--qf" set "qf="
if /i "%a%"=="--r" set "r="
if /i "%a%"=="--rw" set "rw="
if /i "%a%"=="--s" set "s="
if /i "%a%"=="--w" set "w="
if /i "%a%"=="--y" set "y="
shift
goto a
:p
curl -L "https://exiftool.org/" -o exiftooldownload.htm
fart -C exiftooldownload.htm "<tr><td><b>64-bit:\n" "<tr><td><b>64-bit:"
for /f "tokens=5 delims=>=" %%a in ('findstr /c:"<tr><td><b>64-bit:<a" exiftooldownload.htm') do set "el=%%a"
for /f "tokens=6 delims=/" %%b in ('findstr /c:"<tr><td><b>64-bit:<a" exiftooldownload.htm') do set "en=%%b"
del /q exiftooldownload.htm
curl -L "https://api.github.com/repos/yt-dlp/FFmpeg-Builds/releases/latest" -o ffmpegytdlpgithublatestrelease.json
for /f "tokens=2 delims= " %%a in ('findstr /rc:"browser_download_url.*-win64-gpl-shared.zip" ffmpegytdlpgithublatestrelease.json') do set "fyl=%%a"
for /f "tokens=2 delims=, " %%a in ('findstr /rc:"name.*-win64-gpl-shared.zip" ffmpegytdlpgithublatestrelease.json') do set "fyn=%%a"
del /q ffmpegytdlpgithublatestrelease.json
curl -L "https://api.github.com/repos/nanake/ffmpeg-tinderbox/releases/latest" -o ffmpegnnkgithublatestrelease.json
for /f "tokens=2 delims= " %%a in ('findstr /rc:"browser_download_url.*ffmpeg.*shared" ffmpegnnkgithublatestrelease.json') do set "fnl=%%a"
for /f "tokens=9 delims=/." %%a in ('findstr /rc:"browser_download_url.*ffmpeg.*shared" ffmpegnnkgithublatestrelease.json') do set "fnn=%%a.tar.zst"
del /q ffmpegnnkgithublatestrelease.json
curl -L "https://api.github.com/repos/ImageMagick/ImageMagick/releases/latest" -o magickgithublatestrelease.json
for /f "tokens=2 delims= " %%a in ('findstr /rc:"browser_download_url.*portable-Q16-HDRI-x64" magickgithublatestrelease.json') do set "il=%%a"
for /f "tokens=2 delims=, " %%a in ('findstr /rc:"name.*portable-Q16-HDRI-x64" magickgithublatestrelease.json') do set "in=%%a"
del /q magickgithublatestrelease.json
curl -L "https://ftp.osuosl.org/pub/xiph/releases/flac/" -o flacdownload.htm
for /f "delims=" %%i in ('findstr /r /c:"flac-.*-win.zip" flacdownload.htm') do set "t=%%i"
set "t=%t:*href=%"
for /f "tokens=2 delims=>" %%a in ("%t%") do for /f "tokens=1 delims=<" %%b in ("%%a") do set "ln=%%b" & set "ll=https://ftp.osuosl.org/pub/xiph/releases/flac/%%b"
del /q flacdownload.htm
curl -L "https://api.github.com/repos/shinchiro/mpv-winbuild-cmake/releases/latest" -o mpvgithublatestrelease.json
for /f "tokens=2 delims= " %%a in ('findstr /rc:"browser_download_url.*mpv-x86_64-v3" mpvgithublatestrelease.json') do set "ml=%%a"
for /f "tokens=9 delims=/." %%a in ('findstr /rc:"browser_download_url.*mpv-x86_64-v3" mpvgithublatestrelease.json') do set "mn=%%a.7z"
del /q mpvgithublatestrelease.json
curl -L "https://www.rarewares.org/rrw/neroaac.php" -o naacdownload.htm
for /f "delims=" %%i in ('findstr /r /c:"NeroAACCodec-.*.zip" naacdownload.htm') do set "t=%%i" & goto nn
:nn
for /f "tokens=2 delims=>" %%a in ("%t%") do for /f "tokens=1 delims=<" %%b in ("%%a") do set "nn=%%b" & set "nl=https://www.rarewares.org/rrw/files/aac/nero/%%b"
del /q naacdownload.htm
curl -L "https://rarewares.org/opus.php" -o opusdownload.htm
for /f "delims=" %%a in ('findstr /r /c:"opus-tools.*x64.zip" opusdownload.htm') do for /f "tokens=3 delims=>=" %%b in ("%%a") do set "ol=%%b"
for %%c in (%ol%) do set "on=%%~nxc"
set "on=!on:(=%%28!"
set "on=!on:)=%%29!"
set "on=!on: =%%20!"
set "ol=!ol:(=%%28!"
set "ol=!ol:)=%%29!"
set "ol=!ol: =%%20!"
del /q opusdownload.htm
curl -L "https://optipng.sourceforge.net/" -o optipngdownload.htm
for /f "tokens=2 delims=-" %%a in ('findstr /rc:"sourceforge.*optipng.*win64" optipngdownload.htm') do set "v=%%a"
set "pl=http://prdownloads.sourceforge.net/optipng/optipng-%v%-win64.zip?download"
set "pn=optipng-%v%-win64.zip"
del /q optipngdownload.htm
curl -L "https://api.github.com/repos/jgm/pandoc/releases/latest" -o pandocgithublatestrelease.json
for /f "tokens=2 delims=-" %%a in ('findstr /rc:"name.*pandoc.*windows.*zip" pandocgithublatestrelease.json') do set "v=%%a"
set "pdl=https://github.com/jgm/pandoc/releases/latest/download/pandoc-%v%-windows-x86_64.zip"
set "pdn=pandoc-%v%-windows-x86_64.zip"
del /q pandocgithublatestrelease.json
curl -L "https://api.github.com/repos/nu774/qaac/releases/latest" -o qaacgithublatestrelease.json
for /f "tokens=2,3 delims=_." %%a in ('findstr /rc:"name.*qaac" qaacgithublatestrelease.json') do set "v=%%a.%%b"
set "ql=https://github.com/nu774/qaac/releases/download/v%v%/qaac_%v%.zip"
set "qn=qaac_%v%.zip"
del /q qaacgithublatestrelease.json
curl -L "https://api.github.com/repos/Tairesh/rustormy/releases/latest" -o rustormygithublatestrelease.json
for /f "tokens=2 delims=-" %%a in ('findstr /rc:"name.*Windows" rustormygithublatestrelease.json') do set "v=%%a"
set "rl=https://github.com/Tairesh/rustormy/releases/latest/download/rustormy-%v%-Windows.zip"
set "rn=rustormy-%v%-Windows.zip"
del /q rustormygithublatestrelease.json
curl -L "https://rarewares.org/others.php" -o soxdownload.htm
for /f "delims=" %%i in ('findstr /r /c:"[Ss]o[Xx]-.*-x64.zip" soxdownload.htm') do set "t=%%i"
for /f "tokens=2 delims==" %%a in ("%t%") do for /f "tokens=1 delims=>" %%b in ("%%a") do set "sn=%%~nxb" & set "sl=%%b"
del /q soxdownload.htm
curl -L "https://storage.googleapis.com/downloads.webmproject.org/releases/webp/index.html" -o libwebpdownload.htm
for /f "delims=" %%i in ('findstr /r /c:"libwebp-.*-windows-x64.zip" libwebpdownload.htm') do set "t=%%i"
set "t=%t:.asc=%"
for /f "tokens=2 delims=><" %%a in ("%t%") do for /f "tokens=1 delims=/" %%b in ("%%a") do set "wn=%%b" & set "wl=https://storage.googleapis.com/downloads.webmproject.org/releases/webp/%%b"
del /q libwebpdownload.htm
if /i "%dn%"=="1" (
	curl -L "https://github.com/denoland/deno/releases/latest/download/deno-x86_64-pc-windows-msvc.zip" -O --output-dir .
	cmd /c qe "deno-x86_64-pc-windows-msvc.zip"
)
if /i "%e%"=="1" (
	curl -L %el% -o "%en%"
	cmd /c qe "%en%"
)
set "fl=%fyl:~1,-1%"
set "fn=%fyn:~1,-1%"
if /i "%fnonf%"=="1" (
	set "fl=%fnl:~1,-1%"
	set "fn=%fnn%"
)
if /i "%forig%"=="1" (
	set "fl=https://github.com/BtbN/FFmpeg-Builds/releases/latest/download/ffmpeg-master-latest-win64-gpl-shared.zip"
	set "fn=ffmpeg-master-latest-win64-gpl-shared.zip"
)
if /i "%f%"=="1" (	
	curl -L "%fl%" -O --output-dir .
	if /i "%fnonf%"=="1" (
		if not defined forig (
			7z e -y "%fn%"
			for %%i in ("%fn%") do cmd /c qe "%%~ni"
			del /q "%fn%"
		) else (
			cmd /c qe "%fn%"
		)
	) else (
		cmd /c qe "%fn%"
	)
)
if /i "%ft%"=="1" (
	curl -L "https://github.com/lionello/fart-it/releases/latest/download/fart-windows.zip" -O --output-dir .
	cmd /c qe "fart-windows.zip"
)
if /i "%i%"=="1" (
	curl -L %il% -O --output-dir .
	cmd /c qe %in%
)
if /i "%j%"=="1" (
	curl -L "https://artifacts.lucaversari.it/libjxl/libjxl/latest/jxl-x64-windows-static.zip" -O --output-dir .
	cmd /c qe "jxl-x64-windows-static.zip"
)
if /i "%l%"=="1" (
	curl -L "%ll%" -O --output-dir .
	cmd /c qe "%ln%"
)
if /i "%m%"=="1" (
	curl -L %ml% -O --output-dir .
	cmd /c qe "%mn%"
)
if /i "%n%"=="1" (
	curl -L "%nl%" -O --output-dir .
	cmd /c qe "%nn%"
)
if /i "%o%"=="1" (
	curl -L %ol% -O --output-dir .
	cmd /c qe "%on%"
)
if /i "%pd%"=="1" (
	curl -L "%pdl%" -o "%pdn%"
	cmd /c qe "%pdn%"
)
if /i "%p%"=="1" (
	curl -L "%pl%" -o "%pn%"
	cmd /c qe "%pn%"
)
if /i "%q%"=="1" (
	curl -L "%ql%" -O --output-dir .
	cmd /c qe "%qn%"
)
if /i "%qf%"=="1" (
	curl -L "https://github.com/AnimMouse/QTFiles/releases/latest/download/QTfiles64.7z" -O --output-dir .
	cmd /c qe "QTFiles.7z"
)
if /i "%r%"=="1" (
	curl -L "https://angusj.com/resourcehacker/resource_hacker.zip" -O --output-dir .
	cmd /c qe "resource_hacker.zip"
)
if /i "%rw%"=="1" (
	curl -L "%rl%" -O --output-dir .
	cmd /c qe "%rn%"
)
if /i "%s%"=="1" (
	curl -L %sl% -O --output-dir .
	cmd /c qe "%sn%"
)
if /i "%w%"=="1" (
	curl -L "%wl%" -O --output-dir .
	cmd /c qe "%wn%"
)
if /i "%g%"=="1" (
	curl -L "https://github.com/gdl-org/builds/releases/latest/download/gallery-dl_windows.exe" -o "C:\_c\gdl.exe"
	if exist C:\_c\_gdl (
		if not exist "%AppData%\gallery-dl" (
			md "%AppData%\gallery-dl"
		)
		move /y C:\_c\_gdl\* "%AppData%\gallery-dl\"
		rd /q C:\_c\_gdl
	)
)
if /i "%y%"=="1" (
	curl -L "https://github.com/yt-dlp/yt-dlp-nightly-builds/releases/latest/download/yt-dlp.exe" -O --output-dir C:\_c
	if exist C:\_c\_ytdlp (
		if not exist "%AppData%\yt-dlp" (
			md "%AppData%\yt-dlp"
		)
		move /y C:\_c\_ytdlp\* "%AppData%\yt-dlp\"
		rd /q C:\_c\_ytdlp
	)
)
endlocal
upd-dry.bat
@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion
set "t="
set "v="
set "el="
set "en="
set "fnl="
set "fnn="
set "fyl="
set "fyn="
set "il="
set "in="
set "ll="
set "ln="
set "ml="
set "mn="
set "nl="
set "nn="
set "ol="
set "on="
set "pdl="
set "pdn="
set "pl="
set "pn="
set "ql="
set "qn="
set "rl="
set "rn="
set "sl="
set "sn="
set "wl="
set "wn="
curl -L "https://exiftool.org/" -o exiftooldownload.htm
fart -C exiftooldownload.htm "<tr><td><b>64-bit:\n" "<tr><td><b>64-bit:"
for /f "tokens=5 delims=>=" %%a in ('findstr /c:"<tr><td><b>64-bit:<a" exiftooldownload.htm') do set "el=%%a"
for /f "tokens=6 delims=/" %%b in ('findstr /c:"<tr><td><b>64-bit:<a" exiftooldownload.htm') do set "en=%%b"
del /q exiftooldownload.htm
curl -L "https://api.github.com/repos/yt-dlp/FFmpeg-Builds/releases/latest" -o ffmpegytdlpgithublatestrelease.json
for /f "tokens=2 delims= " %%a in ('findstr /rc:"browser_download_url.*-win64-gpl-shared.zip" ffmpegytdlpgithublatestrelease.json') do set "fyl=%%a"
for /f "tokens=2 delims=, " %%a in ('findstr /rc:"name.*-win64-gpl-shared.zip" ffmpegytdlpgithublatestrelease.json') do set "fyn=%%a"
del /q ffmpegytdlpgithublatestrelease.json
curl -L "https://api.github.com/repos/nanake/ffmpeg-tinderbox/releases/latest" -o ffmpegnnkgithublatestrelease.json
for /f "tokens=2 delims= " %%a in ('findstr /rc:"browser_download_url.*ffmpeg.*shared" ffmpegnnkgithublatestrelease.json') do set "fnl=%%a"
for /f "tokens=9 delims=/." %%a in ('findstr /rc:"browser_download_url.*ffmpeg.*shared" ffmpegnnkgithublatestrelease.json') do set "fnn=%%a.tar.zst"
del /q ffmpegnnkgithublatestrelease.json
curl -L "https://api.github.com/repos/ImageMagick/ImageMagick/releases/latest" -o magickgithublatestrelease.json
for /f "tokens=2 delims= " %%a in ('findstr /rc:"browser_download_url.*portable-Q16-HDRI-x64" magickgithublatestrelease.json') do set "il=%%a"
for /f "tokens=2 delims=, " %%a in ('findstr /rc:"name.*portable-Q16-HDRI-x64" magickgithublatestrelease.json') do set "in=%%a"
del /q magickgithublatestrelease.json
curl -L "https://ftp.osuosl.org/pub/xiph/releases/flac/" -o flacdownload.htm
for /f "delims=" %%i in ('findstr /r /c:"flac-.*-win.zip" flacdownload.htm') do set "t=%%i"
set "t=%t:*href=%"
for /f "tokens=2 delims=>" %%a in ("%t%") do for /f "tokens=1 delims=<" %%b in ("%%a") do set "ln=%%b" & set "ll=https://ftp.osuosl.org/pub/xiph/releases/flac/%%b"
del /q flacdownload.htm
curl -L "https://api.github.com/repos/shinchiro/mpv-winbuild-cmake/releases/latest" -o mpvgithublatestrelease.json
for /f "tokens=2 delims= " %%a in ('findstr /rc:"browser_download_url.*mpv-x86_64-v3" mpvgithublatestrelease.json') do set "ml=%%a"
for /f "tokens=9 delims=/." %%a in ('findstr /rc:"browser_download_url.*mpv-x86_64-v3" mpvgithublatestrelease.json') do set "mn=%%a.7z"
del /q mpvgithublatestrelease.json
curl -L "https://www.rarewares.org/rrw/neroaac.php" -o naacdownload.htm
for /f "delims=" %%i in ('findstr /r /c:"NeroAACCodec-.*.zip" naacdownload.htm') do set "t=%%i" & goto nn
:nn
for /f "tokens=2 delims=>" %%a in ("%t%") do for /f "tokens=1 delims=<" %%b in ("%%a") do set "nn=%%b" & set "nl=https://www.rarewares.org/rrw/files/aac/nero/%%b"
del /q naacdownload.htm
curl -L "https://rarewares.org/opus.php" -o opusdownload.htm
for /f "delims=" %%a in ('findstr /r /c:"opus-tools.*x64.zip" opusdownload.htm') do for /f "tokens=3 delims=>=" %%b in ("%%a") do set "ol=%%b"
for %%c in (%ol%) do set "on=%%~nxc"
set "on=!on:(=%%28!"
set "on=!on:)=%%29!"
set "on=!on: =%%20!"
set "ol=!ol:(=%%28!"
set "ol=!ol:)=%%29!"
set "ol=!ol: =%%20!"
del /q opusdownload.htm
curl -L "https://optipng.sourceforge.net/" -o optipngdownload.htm
for /f "tokens=2 delims=-" %%a in ('findstr /rc:"sourceforge.*optipng.*win64" optipngdownload.htm') do set "v=%%a"
set "pl=http://prdownloads.sourceforge.net/optipng/optipng-%v%-win64.zip?download"
set "pn=optipng-%v%-win64.zip"
del /q optipngdownload.htm
curl -L "https://api.github.com/repos/jgm/pandoc/releases/latest" -o pandocgithublatestrelease.json
for /f "tokens=2 delims=-" %%a in ('findstr /rc:"name.*pandoc.*windows.*zip" pandocgithublatestrelease.json') do set "v=%%a"
set "pdl=https://github.com/jgm/pandoc/releases/latest/download/pandoc-%v%-windows-x86_64.zip"
set "pdn=pandoc-%v%-windows-x86_64.zip"
del /q pandocgithublatestrelease.json
curl -L "https://api.github.com/repos/nu774/qaac/releases/latest" -o qaacgithublatestrelease.json
for /f "tokens=2,3 delims=_." %%a in ('findstr /rc:"name.*qaac" qaacgithublatestrelease.json') do set "v=%%a.%%b"
set "ql=https://github.com/nu774/qaac/releases/download/v%v%/qaac_%v%.zip"
set "qn=qaac_%v%.zip"
del /q qaacgithublatestrelease.json
curl -L "https://api.github.com/repos/Tairesh/rustormy/releases/latest" -o rustormygithublatestrelease.json
for /f "tokens=2 delims=-" %%a in ('findstr /rc:"name.*Windows" rustormygithublatestrelease.json') do set "v=%%a"
set "rl=https://github.com/Tairesh/rustormy/releases/latest/download/rustormy-%v%-Windows.zip"
set "rn=rustormy-%v%-Windows.zip"
del /q rustormygithublatestrelease.json
curl -L "https://rarewares.org/others.php" -o soxdownload.htm
for /f "delims=" %%i in ('findstr /r /c:"[Ss]o[Xx]-.*-x64.zip" soxdownload.htm') do set "t=%%i"
for /f "tokens=2 delims==" %%a in ("%t%") do for /f "tokens=1 delims=>" %%b in ("%%a") do set "sn=%%~nxb" & set "sl=%%b"
del /q soxdownload.htm
curl -L "https://storage.googleapis.com/downloads.webmproject.org/releases/webp/index.html" -o libwebpdownload.htm
for /f "delims=" %%i in ('findstr /r /c:"libwebp-.*-windows-x64.zip" libwebpdownload.htm') do set "t=%%i"
set "t=%t:.asc=%"
for /f "tokens=2 delims=><" %%a in ("%t%") do for /f "tokens=1 delims=/" %%b in ("%%a") do set "wn=%%b" & set "wl=https://storage.googleapis.com/downloads.webmproject.org/releases/webp/%%b"
del /q libwebpdownload.htm
echo.
echo ^= UPD DRY-RUN RESULTS^=
echo.
echo ^=^=exiftool^=^=
echo  el is: %el%
echo  en is: "%en%"
echo.
echo ^=^=ffmpeg-ytdlp^=^=
echo  fyl is: %fyl%
echo  fyn is: %fyn%
echo.
echo ^=^=ffmpeg-tinderbox^=^=
echo  fnl is: %fnl%
echo  fnn is: "%fnn%"
echo.
echo ^=^=magick^=^=
echo  il is: %il%
echo  in is: %in%
echo.
echo ^=^=flac^=^=
echo  ll is: "%ll%"
echo  ln is: "%ln%"
echo.
echo ^=^=mpv^=^=
echo  ml is: %ml%
echo  mn is: "%mn%"
echo.
echo ^=^=NeroAAC^=^=
echo  nl is: "%nl%"
echo  nn is: "%nn%"
echo.
echo ^=^=opus^=^=
echo  ol is: %ol%
echo  on is: "%on%"
echo.
echo ^=^=optipng^=^=
echo  pl is: "%pl%"
echo  pn is: "%pn%"
echo.
echo ^=^=pandoc^=^=
echo  pdl is: "%pdl%"
echo  pdn is: "%pdn%"
echo.
echo ^=^=qaac^=^=
echo  ql is: "%ql%"
echo  qn is: "%qn%"
echo.
echo ^=^=rustormy^=^=
echo  rl is: "%rl%"
echo  rn is: "%rn%"
echo.
echo ^=^=sox^=^=
echo  sl is: %sl%
echo  sn is: "%sn%"
echo.
echo ^=^=webp^=^=
echo  wl is: "%wl%"
echo  wn is: "%wn%"
endlocal