标题: [文件操作] [已解决]求修改批处理IF这样写为什么获取不到 [打印本页]
作者: smss 时间: 2019-6-18 11:37 标题: [已解决]求修改批处理IF这样写为什么获取不到
- @echo off
- @(for %%i in (%*) do (
- if "%%~xi"==".gif" (set Y=gif2webp.exe) else (set Y=cwebp.exe)
- echo %Y%
- echo %%~xi
- %~dp0%Y% -q 100 %%i -o "%~dp1%%~ni.webp"1>nul 2>nul)
- )&echo 处理完毕!即将关闭!
- pause
复制代码
想通过if判断后缀如是.gif则Y=gif2webp.exe
if "%%~xi"==".gif" (set Y=gif2webp.exe) else (set Y=cwebp.exe)
echo %Y% 获取不到
echo %%~xi 可以正常获取
作者: miqilaosu 时间: 2019-6-18 11:43
本帖最后由 miqilaosu 于 2019-6-18 13:19 编辑
回复 1# smss
for %%i in (%*),这个%*,你是要干嘛的
你要做的是什么操作 如果是只对GIF操作的话 for /f %%i in ('dir /a-d/b /s "*.gif"') do 就可以了啊- @echo off
- setlocal enabledelayedexpansion
- @(for /f "delims=*" %%i in ('dir /a-d /b /s *.gif,*.png,*.jpg') do (
- if "%%~xi"==".gif" (set Y=gif2webp.exe) else (set Y=cwebp.exe)
- echo,!Y!
- echo,%%~xi
- %~dp0%Y% -q 100 %%i -o "%~dp1%%~ni.webp"1>nul 2>nul
- )
- )&&echo 处理完毕!即将关闭!
- pause
复制代码
估计你IF里的格式有误吧 我完全重敲了一次就好了
作者: smss 时间: 2019-6-18 14:45
本帖最后由 smss 于 2019-6-18 15:09 编辑
回复 2# miqilaosu
谢谢
for %%i in (%*) 用来拖拽获取路径- @echo off
- setlocal enabledelayedexpansion
- @(for %%i in (%*) do (
- if "%%~xi"==".gif" (set Y=gif2webp.exe) else (set Y=cwebp.exe)
- %~dp0!Y! -q 100 %%i -o "%~dp1%%~ni.webp"1>nul 2>nul)
- )&echo 处理完毕!即将关闭!
- pause
复制代码
1加延迟
2%Y%换成!Y!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |