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

时间:2013-10-02 20:48:36

标签: batch-file recursion

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

@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" 

1 个答案:

答案 0 :(得分: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
)