[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] BAT脚本FOR处理文件到新目录,如何保留原目录结构?

  1. @echo off
  2. for /r .\待转换\ %%a in (*.jpg) do (
  3.     .\libwebp-1.2.1-windows-x64\bin\cwebp.exe -m 6 %%a -o .\完成\%%~na.webp
  4. )
  5. pause
复制代码
这脚本现在能运行,但是处理后全在一个目录里了
还得自动创建对应目录。。没有目录会执行失败

本帖最后由 hentai87 于 2021-11-30 09:19 编辑

@echo off
for /r .\待转换\ %%i in (*.jpg *.png) do (
        if not exist ".\完成%%~pi%%~ni.webp" (
                if not exist ".\完成%%~pi" MD ".\完成%%~pi"
                .\libwebp-1.2.1-windows-x64\bin\cwebp.exe -quiet -m 6 "%%i" -o ".\完成%%~pi%%~ni.webp"
                echo 已处理".\完成%%~pi%%~ni.webp"
        )
)
pause


这是现在的,勉强实现了保留目录,但是多了2层目录,不知道怎么去掉
目标
D:\webp\待转换\webp\待转换\Fantasy Factory
结果
D:\webp\完成\webp\待转换\Fantasy Factory

我想要的
D:\webp\完成\Fantasy Factory

TOP

@echo off
set "mm=%cd%\完成\"
for /r .\待转换\ %%i in (*.jpg *.png) do (
        if not exist "%mm%%%~ni" (
                MD "%mm%%%~ni"
                .\libwebp-1.2.1-windows-x64\bin\cwebp.exe -quiet -m 6 "%%i" -o "%mm%%%~ni"
                echo 已处理"%mm%%%~ni"
        )
)
pause
Fit Strong

TOP

本帖最后由 wudi61600963 于 2021-11-30 18:11 编辑

几个月前刚把楼主的需求实现了一遍,从结论说:

此类资源不建议存储 webp,因为对于照片 webp 无损会极大增大体积,有损损失画质,因此个人认为 libjpeg-turbo (最新版本 2.1.1)无损压缩 jpg 是当前最优解,其中:
· 使用算术编码存储为备份副本(-arithmetic -progressive -copy all)【体积降低 17.5%,解码效率降低 2~3倍】
· 使用霍夫曼编码存储为鉴赏用(-optimize -copy all)【体积降低 8%,解码效率提升 1~1.5倍】

使用 rar 压缩测试体积降低 7GB。
此外有一些工具可以无损修改 jpg 图像,适合去除水印使用。
(用批处理写了 JPEG 批量优化工具,如有需求,日后考虑分享)

TOP

回复 4# wudi61600963


   看不懂,你是说腾讯的TPG格式吗

TOP

返回列表