找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 24872|回复: 2

[文件操作] [已解决]求修改批处理IF这样写为什么获取不到

[复制链接]
发表于 2019-6-18 11:37:33 | 显示全部楼层 |阅读模式
  1. @echo off
  2. @(for %%i in (%*) do (
  3. if "%%~xi"==".gif" (set Y=gif2webp.exe) else (set Y=cwebp.exe)
  4. echo  %Y%
  5. echo  %%~xi
  6. %~dp0%Y% -q 100 %%i -o "%~dp1%%~ni.webp"1>nul 2>nul)
  7. )&echo        处理完毕!即将关闭!
  8. pause
复制代码
想通过if判断后缀如是.gif则Y=gif2webp.exe
if "%%~xi"==".gif" (set Y=gif2webp.exe) else (set Y=cwebp.exe)
echo  %Y% 获取不到
echo  %%~xi 可以正常获取
发表于 2019-6-18 11:43:27 | 显示全部楼层
本帖最后由 miqilaosu 于 2019-6-18 13:19 编辑

回复 1# smss


    for %%i in (%*),这个%*,你是要干嘛的
你要做的是什么操作 如果是只对GIF操作的话 for /f %%i in ('dir /a-d/b /s "*.gif"') do  就可以了啊
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. @(for /f "delims=*" %%i in ('dir /a-d /b /s *.gif,*.png,*.jpg') do (
  4. if "%%~xi"==".gif" (set Y=gif2webp.exe) else (set Y=cwebp.exe)
  5. echo,!Y!
  6. echo,%%~xi
  7. %~dp0%Y% -q 100 %%i -o "%~dp1%%~ni.webp"1>nul 2>nul
  8. )
  9. )&&echo        处理完毕!即将关闭!
  10. pause
复制代码
估计你IF里的格式有误吧 我完全重敲了一次就好了
 楼主| 发表于 2019-6-18 14:45:36 | 显示全部楼层
本帖最后由 smss 于 2019-6-18 15:09 编辑

回复 2# miqilaosu
谢谢
for %%i in (%*) 用来拖拽获取路径
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. @(for %%i in (%*) do (
  4. if "%%~xi"==".gif" (set Y=gif2webp.exe) else (set Y=cwebp.exe)
  5. %~dp0!Y! -q 100 %%i -o "%~dp1%%~ni.webp"1>nul 2>nul)
  6. )&echo        处理完毕!即将关闭!
  7. pause
复制代码
1加延迟
2%Y%换成!Y!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 05:14 , Processed in 0.008957 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表