如何使用JpegTran在使用Windows的目录中递归处理所有图像,覆盖它们?

Ark*_*des 3 windows command-line image-processing batch-file

现在我有以下用于处理我的图像的批处理文件:

@echo none 
cd %1 
md "%~1\ProcessedJPEGS"
for %%i in (*.jpg) do "C:\Program Files\Image Optimization\jpegtran.exe" -optimize -progressive -copy none "%%i" "%~1\ProcessedJPEGS\%%i" 
move /Y "%~1\ProcessedJPEGS\*.*" "%~1" 
rd "%~1\ProcessedJPEGS" 
pause
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,这不是理想的,但我的技能充其量是可笑的,所以我需要一些帮助:)

我想要完成的是在目录中运行此批处理并递归处理所有图像并覆盖它们.

提前谢谢,Arky

fox*_*ive 8

根据您的命令行,这应该处理当前文件夹及以下的所有JPG文件.在一组文件/文件夹上测试它,以确保它适合您.

@echo none 
for /f "delims=" %%a in ('dir "*.jpg" /b /s /a-d') do (
echo processing "%%a"
"C:\Program Files\Image Optimization\jpegtran.exe" -optimize -progressive -copy none "%%a" "%%a.tmp"
move /Y "%%a.tmp" "%%a" >nul
)
pause
Run Code Online (Sandbox Code Playgroud)