标题: [文件操作] [已解决]批处理如何根据图片名称删除指定文件? [打印本页]
作者: honghong33 时间: 2015-3-6 23:00 标题: [已解决]批处理如何根据图片名称删除指定文件?
本帖最后由 honghong33 于 2015-3-14 20:57 编辑
我有一些图片,命名规则是一串字母数字加_400、_500或_1280。
我需要做的是,如果前面的字母数字相同的话,比较后缀是_400和_500删除_400
是_500和_1280删除_500
是_400、_500、_1280删除_400、和_500
不存字母数字相同的不处理。
比如:
xksED1s9oda_400(删除)
xksED1s9oda_500
21qlyxfpo1_1280
21qlyxfpo1_500(删除)
mxu3cpaLoK1rz_400(删除)
mxu3cpaLoK1rz_1280
w5VHVc_400(删除)
w5VHVc_500(删除)
w5VHVc_1280、
vx9b4vfs21saujx6o_500(不处理)
oloeCCz1rajzayo_1280(不处理)
作者: tmplinshi 时间: 2015-3-7 00:04
本帖最后由 tmplinshi 于 2015-3-7 00:28 编辑
- @echo off
- SetLocal EnableDelayedExpansion
-
- cd /d "C:\Users\Administrator\Desktop\新建文件夹" || (pause & exit /b)
-
- for /f "delims=" %%i in ('dir /a:-d /b *_*.jpg') do (
- set list=
- for /f "delims=_" %%a in ("%%i") do (
- for %%n in (400 500 1280) do (
- if exist "%%a_%%n%%~xi" (set list=!list! %%n)
- )
- for /f "tokens=1-3" %%1 in ("!list!") do (
- if "%%3" neq "" (del "%%a_%%2%%~xi")
- if "%%2" neq "" (del "%%a_%%1%%~xi")
- )
- )
- )
复制代码
推荐用楼下 cobat 的代码。
作者: cobat 时间: 2015-3-7 00:09
- @echo off 2>nul 3>nul
- for /f "delims=_" %%a in ('dir /a-d /b *_1280.jpg') do del %%a_500.jpg %%a_400.jpg
- for /f "delims=_" %%a in ('dir /a-d /b *_500.jpg') do del %%a_400.jpg
- pause
复制代码
作者: honghong33 时间: 2015-3-7 17:26
回复 3# cobat
只能处理jpg格式,png、gif格式无法使用
前面的字母数字存在_等特殊符号时无法处理
作者: cobat 时间: 2015-3-7 18:06
本帖最后由 cobat 于 2015-3-7 18:50 编辑
回复 4# honghong33 - @echo off 2>nul 3>nul
- for /f "delims=" %%a in ('dir /a-d /b') do (
- set a=%%a
- setlocal enabledelayedexpansion
- if "!a:~-9,6!" == "_1280." del "!a:_1280.=_500.!" "!a:_1280.=_400.!"
- if "!a:~-8,5!" == "_500." del "!a:_500.=_400.!"
- endlocal
- )
- pause
复制代码
作者: pcl_test 时间: 2015-3-14 20:53
回复 1# honghong33
问题得到解答以后请在标题最前面注明[已解决]
http://www.bathome.net/thread-3473-1-1.html
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |