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

回复 1# smss


    文件名没变的话,你通过文件名判断就好了啊,%%~ni.png

TOP

本帖最后由 miqilaosu 于 2019-6-20 10:47 编辑

回复 3# smss


    处理完的文件后辍名不用PNG和jpg,因为后辍名不同所以不会被查到,这种方法使用的多一些
  1. ren "%%~ni.webp" "%%~nxixy"
复制代码
比如A.png改成A.pngxy   A.jpg改成A.jpgxy脚本执行结束前在批量改回来
  1. ren *.pngxy *.png
  2. ren *.jpgxy *.jpg
复制代码
反正批量改名处理很快
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   还有个笨的方法就是把所有文件加路径读取放到记事本
  1. dir /b /a-d /s *.jpg *.png>png.log
复制代码
,然后FOR读取记事本处理,不会出现重复循环

TOP

本帖最后由 miqilaosu 于 2019-6-20 10:51 编辑

回复 5# smss


    *.webp 改回png,jpg操作一次,隐藏属性一次,隐藏属性改回来一次,同一文件操作了三次
    *.webp改成*.pngxy,*.jpgxy,一次,最后再回来一次,同一文件操作了二次
个人感觉操作次数越少越好
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in ('dir /b /ad /a-h /s *.jpg,*.png') do (set "file=%%~nxi"
  3. if "!file:~-6!" neq ".9.png" (%~dp0cwebp.exe -q 88 "%%i" -o "%%~dpi%%~ni.webp"&del "%%i"&cd %%~dpi&ren "%%~ni.webp" "%%~nxixy")
  4. )1>nul 2>nul
  5. ren *.pngxy *.png
  6. ren *.jpgxy *.jpg
  7. pause
复制代码

TOP

本帖最后由 miqilaosu 于 2019-6-20 13:13 编辑

回复 7# smss
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in ('dir /b /a-d /s *.jpg *.png') do (
  3. set "file=%%~nxi"&set "smss=9"
  4. findstr/i "%%i" webp.log >nul 2>nul&&set "smss="
  5. if defined smss (
  6. if "!file:~-6!" neq ".9.png" (%~dp0cwebp.exe -q 88 "%%i" -o "%%~dpi%%~ni.webp"&del /s/q/f/a "%%i"&cd %%~dpi&ren "%%~ni.webp" "%%~nxi"&&echo,%%i>>webp.log)
  7. )
  8. )1>nul 2>nul
  9. pause
复制代码
那这样写应该也可以吧

TOP

返回列表