递归.bat文件将jpegtran和pngout应用于子文件夹中的所有图像

ol3*_*an0 2 recursion batch-file

我有这个脚本来优化目录中的图像,我需要使这个递归,以优化子目录中的所有图像,保持文件名和文件夹结构不变..任何人都可以帮助修改此代码,以修改子目录中的图像?

@echo none
cd %1
md "%~1\OptimizedJPEGS"
for %%i in (*.jpg) do "C:\imageoptimization\jpegtran.exe" -optimize -progressive -copy none "%%i" "%~1\OptimizedJPEGS\%%i"
move /Y "%~1\OptimizedJPEGS\*.*" "%~1"
rd "%~1\OptimizedJPEGS"
for %%i in (*.png) do "C:\imageoptimization\pngout.exe" "%%i" 
Run Code Online (Sandbox Code Playgroud)

fox*_*ive 5

这应该在图像树的主文件夹中启动时有效.
首先在一些示例文件夹上测试它.

@echo none
for /d /r %%a in (*) do (
   pushd "%%a"
     echo processing "%%a"
     md "OptimizedJPEGS" 
        for %%i in (*.jpg) do "C:\imageoptimization\jpegtran.exe" -optimize -progressive -copy none "%%i" "OptimizedJPEGS\%%i"
        move /Y "OptimizedJPEGS\*.*" .
     rd "OptimizedJPEGS"
        for %%i in (*.png) do "C:\imageoptimization\pngout.exe" "%%i" 
   popd
)
Run Code Online (Sandbox Code Playgroud)