
标题: [文件操作] 批处理怎样删除指定目录宽度小于指定像素的JPG图片? [打印本页]
作者: hcy980 时间: 2011-4-4 21:24 标题: 批处理怎样删除指定目录宽度小于指定像素的JPG图片?
本帖最后由 pcl_test 于 2016-11-16 20:35 编辑
求批处理代码,整理电脑发现特别多的缓存小图。
想批量删除“宽度小于100像素”的所有JPG格式图片,保留大与100像素。
请各位伸手帮忙。
作者: hanyeguxing 时间: 2011-4-4 22:21
需要使用第三方程序,推荐楼主本版内搜索jpg
作者: hfg1977 时间: 2011-4-5 08:39
本帖最后由 hfg1977 于 2011-4-5 08:46 编辑
- @echo off
- set "nconvert=g:\DOS\command\第三方命令行程序\nconvert.exe"
- set "ext=*.jpg *.bmp"
- if "%~1"=="" (set/p "Path_str=input you path:") else (set "Path_str=%~1")
- if not exist "%Path_str%.\" (echo path error&goto:eof)
- pushd "%Path_str%.\"
- for /f "tokens=* delims=" %%i in ('dir /a-d/b/s %ext%') do (
- for /f "tokens=1,2 delims=: " %%a in ('%nconvert% -info "%%i"^|findstr /i "Width Height"') do (
- if /i "%%a"=="Width" (if %%a LEQ 100 del /f/q "%%~dpi")
- rem if /i "%%a"=="Height" set "pciH=%%b"
- ))
复制代码
作者: tmplinshi 时间: 2011-4-5 11:55
本帖最后由 tmplinshi 于 2011-4-5 21:50 编辑
需要下载 pvw32con.exe (http://bathome.net/thread-10539-1-3.html)- @echo off
-
- set "目录=i:\"
- set "宽度=100" :: 删除小于此宽度的 JPG 图片
-
- set "path=%path%;%~dp0"
- pushd "%目录%\"
-
- >"%temp%\.p" (
- echo "%cd%"
- dir /a:d /s /b
- )
-
- for /f "usebackq delims=" %%P in ("%temp%\.p") do (
- if exist "%%~P\*.jpg" (
- >"%temp%\.p" pvw32con "%%~P\*.jpg"
- for /f "usebackq tokens=1,2 delims=:" %%i in ("%temp%\.p") do (
- set file="%%~P\%%i"
- set width=%%j
- set /a width = width
- SetLocal EnableDelayedExpansion
- if !width! lss %宽度% del /a /f !file!
- EndLocal
- )
- )
- )
-
- del "%temp%\.p"
- popd
复制代码
作者: hcy980 时间: 2011-4-5 21:31
谢谢,楼上的两位大大!
3楼的代码,运行不起来。 我已将nconvert.exe 下载,与批放在同一文件来。
提示 input you path 之后我输入目录 p:\123 批就停住了。 不能运行、
4楼代码,也运行不起来。
将目录修改为 目录=P:\123\ 批一闪而过。
再求一次!
作者: tmplinshi 时间: 2011-4-5 21:34
5# hcy980
下载了 pvw32con.exe 吗?
作者: hcy980 时间: 2011-4-5 21:44
5# hcy980
下载了 pvw32con.exe 吗?
tmplinshi 发表于 2011-4-5 21:34 
下载了,并放在同一文件夹内了!
选中的地方,是不是要修改成绝对路径? 第一个目录 ,输入是不是正确!
作者: tmplinshi 时间: 2011-4-5 21:52
可以了,已修改代码。
作者: hcy980 时间: 2011-4-5 22:15
怪事,还是运行不起来。
版主,帮忙!
作者: tmplinshi 时间: 2011-4-5 22:36
你打开一个 cmd 窗口,输入批处理路径来运行,看什么错误提示。
作者: hcy980 时间: 2011-4-5 22:50
10# tmplinshi
就是停止行动。 啥也不干!
我就是复制了你的代码,啥也没修改!
作者: tmplinshi 时间: 2011-4-5 22:54
本帖最后由 tmplinshi 于 2011-4-5 22:56 编辑
想不通...
>"%temp%\.p" (
echo "%cd%"
dir /a:d /s /b
)
start notepad "%temp%\.p" & exit /b
加上一句,运行后看打开的 "%temp%\.p" 是什么内容。
作者: hcy980 时间: 2011-4-5 23:00
想不通...
加上一句,运行后看打开的 "%temp%\.p" 是什么内容。
tmplinshi 发表于 2011-4-5 22:54 
打开一个 TXT。 应该是将I盘所有目录都例了出来!
I:\通讯工具\QQ2008\Dat\images
I:\通讯工具\QQ2008\Dat\Torch
I:\通讯工具\QQ2008\flashshow\qqshow0
I:\通讯工具\QQ2008\flashshow\qqshow1
I:\通讯工具\QQ2008\flashshow\qqshow2
I:\通讯工具\QQ2008\flashshow\qqshow3
I:\通讯工具\QQ2008\flashshow\qqshow4
I:\通讯工具\QQ2008\flashshow\qqshow5
I:\通讯工具\QQ2008\flashshow\qqshow6
I:\通讯工具\QQ2008\flashshow\qqshow7
I:\通讯工具\QQ2008\flashshow\qqshow8
I:\通讯工具\QQ2008\flashshow\qqshow9
I:\通讯工具\QQ2008\flashshow\xml0
I:\通讯工具\QQ2008\flashshow\xml1
I:\通讯工具\QQ2008\flashshow\xml2
I:\通讯工具\QQ2008\flashshow\xml3
I:\通讯工具\QQ2008\flashshow\xml4
I:\通讯工具\QQ2008\flashshow\xml5
I:\通讯工具\QQ2008\flashshow\xml6
I:\通讯工具\QQ2008\flashshow\xml7
I:\通讯工具\QQ2008\flashshow\xml8
I:\通讯工具\QQ2008\flashshow\xml9
I:\通讯工具\QQ2008\flashshow2\0
I:\通讯工具\QQ2008\flashshow2\1
I:\通讯工具\QQ2008\flashshow2\10
I:\通讯工具\QQ2008\flashshow2\11
I:\通讯工具\QQ2008\flashshow2\12
I:\通讯工具\QQ2008\flashshow2\13
I:\通讯工具\QQ2008\flashshow2\14
I:\通讯工具\QQ2008\flashshow2\15
I:\通讯工具\QQ2008\flashshow2\16
I:\通讯工具\QQ2008\flashshow2\17
I:\通讯工具\QQ2008\flashshow2\18
I:\通讯工具\QQ2008\flashshow2\19
I:\通讯工具\QQ2008\flashshow2\2
I:\通讯工具\QQ2008\flashshow2\20
I:\通讯工具\QQ2008\flashshow2\21
I:\通讯工具\QQ2008\flashshow2\22
I:\通讯工具\QQ2008\flashshow2\23
I:\通讯工具\QQ2008\flashshow2\24
I:\通讯工具\QQ2008\flashshow2\25
I:\通讯工具\QQ2008\flashshow2\26
I:\通讯工具\QQ2008\flashshow2\27
I:\通讯工具\QQ2008\flashshow2\28
I:\通讯工具\QQ2008\flashshow2\29
I:\通讯工具\QQ2008\flashshow2\3
I:\通讯工具\QQ2008\flashshow2\30
I:\通讯工具\QQ2008\flashshow2\31
I:\通讯工具\QQ2008\flashshow2\32
I:\通讯工具\QQ2008\flashshow2\33
I:\通讯工具\QQ2008\flashshow2\34
I:\通讯工具\QQ2008\flashshow2\35
I:\通讯工具\QQ2008\flashshow2\36
I:\通讯工具\QQ2008\flashshow2\37
I:\通讯工具\QQ2008\flashshow2\38
I:\通讯工具\QQ2008\flashshow2\39
I:\通讯工具\QQ2008\flashshow2\4
I:\通讯工具\QQ2008\flashshow2\40
I:\通讯工具\QQ2008\flashshow2\42
I:\通讯工具\QQ2008\flashshow2\43
I:\通讯工具\QQ2008\flashshow2\44
I:\通讯工具\QQ2008\flashshow2\45
I:\通讯工具\QQ2008\flashshow2\46
I:\通讯工具\QQ2008\flashshow2\47
I:\通讯工具\QQ2008\flashshow2\48
I:\通讯工具\QQ2008\flashshow2\49
I:\通讯工具\QQ2008\flashshow2\5
I:\通讯工具\QQ2008\flashshow2\50
I:\通讯工具\QQ2008\flashshow2\51
I:\通讯工具\QQ2008\flashshow2\52
I:\通讯工具\QQ2008\flashshow2\53
I:\通讯工具\QQ2008\flashshow2\54
I:\通讯工具\QQ2008\flashshow2\55
I:\通讯工具\QQ2008\flashshow2\56
I:\通讯工具\QQ2008\flashshow2\57
I:\通讯工具\QQ2008\flashshow2\58
I:\通讯工具\QQ2008\flashshow2\59
I:\通讯工具\QQ2008\flashshow2\6
I:\通讯工具\QQ2008\flashshow2\60
I:\通讯工具\QQ2008\flashshow2\61
I:\通讯工具\QQ2008\flashshow2\62
I:\通讯工具\QQ2008\flashshow2\63
I:\通讯工具\QQ2008\flashshow2\64
I:\通讯工具\QQ2008\flashshow2\65
I:\通讯工具\QQ2008\flashshow2\66
作者: tmplinshi 时间: 2011-4-5 23:21
本帖最后由 tmplinshi 于 2011-4-6 16:43 编辑
难道 pvw32con.exe 不支持你的操作系统?pvw32con.exe 的运行环境是 9x/NT/2000/ME/XP (32 位)。
你对照下 4 楼的代码,或者干脆重新复制一遍。再运行试试。
还是不行的话,用下面的代码测试下。运行后会打开一个文件,把内容贴出来:- @echo off
-
- set "目录=e:\123\"
- set "宽度=100" :: 删除小于此宽度的 JPG 图片
-
- set "path=%path%;%~dp0"
- pushd "%目录%\"
-
- >"%temp%\.p" (
- echo "%cd%"
- dir /a:d /s /b
- )
-
- for /f "usebackq delims=" %%P in ("%temp%\.p") do (
- if exist "%%~P\*.jpg" (
- >"%temp%\.p" pvw32con "%%~P\*.jpg"
- start notepad "%temp%\.p" & exit /b
- )
- )
复制代码
作者: hcy980 时间: 2011-4-6 11:04
谢谢版主帮忙.
系统是XP2 OEM版~
复制了14楼的代码运行后得到的TXT是
问题还是没有解决!
%4{06IJSUE((A]{C)PDA5VO.jpg:333x345, 24bit, 96 DPI, JFIF 1.1, Lossy + Huffman coding
%FY5M[4WNYH~TMWXV[O`P1M.jpg:378x337, 24bit, 96 DPI, JFIF 1.1, Lossy + Huffman coding
(HFFHCN4BMEJUXZ%BXQ{_MO.jpg:516x338, 24bit, 96 DPI, JFIF 1.1, Lossy + Huffman coding
(X_SSQ3~3BF@85Q)VF}RWTM.jpg:370x363, 24bit, 96 DPI, JFIF 1.1, Lossy + Huffman coding
(~$OJDRPXXDIDGLROWZRC%U.jpg:205x226, 24bit, JFIF 1.1, Lossy + Huffman coding
)HA9IJ6YZIGTX_QK5TB1}3H.jpg:315x378, 24bit, 96 DPI, JFIF 1.1, Lossy + Huffman coding
6VLF@%)ET0MCO}4MA`[email]2@GQH.jpg[/email]:313x189, 24bit, 96 DPI, JFIF 1.1, Lossy + Huffman coding
7J~I@TV[(U`Q5TF[42%4()7.jpg:272x312, 24bit, 96 DPI, JFIF 1.1, Lossy + Huffman coding
7NM`T[$]SUE~9%$769R)@ZD.jpg:291x327, 24bit, 96 DPI, JFIF 1.1, Lossy + Huffman coding
8N3]%V7UR{7I9TZDM9PJOCN.jpg:369x257, 24bit, 96 DPI, JFIF 1.1, Lossy + Huffman coding
9$@30L[TSV_D{D4NTNN_GUA.jpg:315x215, 24bit, 96 DPI, JFIF 1.1, Lossy + Huffman coding
@Q8{L0FK)Y~YF8`C1]C2T]E.jpg:409x522, 24bit, 96 DPI, JFIF 1.1, Lossy + Huffman coding
@}ZQ(V_A$BHLU%_T449(}{H.jpg:163x87, 24bit, 96 DPI, JFIF 1.1, Lossy + Huffman coding
作者: hfg1977 时间: 2011-4-6 12:46
5# hcy980
set "nconvert=g:\DOS\command\第三方命令行程序\nconvert.exe"
......
if not exist "%Path_str%.\" (echo path error&goto:eof)
你不会没修改路径吧?? 你的123文件夹不会是不存在的吧??
作者: hcy980 时间: 2011-4-7 18:30
5# hcy980
你不会没修改路径吧?? 你的123文件夹不会是不存在的吧??
hfg1977 发表于 2011-4-6 12:46 
修改了,的确不能运行!
输入需要修改的目录后,批就停止了!
光标一直在闪,啥也不干·
接着顶起!
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |