标题: [文件操作] 如何提取txt里的指定内容来重命名jpg图片? [打印本页]
作者: wenlishasha 时间: 2016-1-30 18:20 标题: 如何提取txt里的指定内容来重命名jpg图片?
我有一堆jpg和txt(各有2万多个)
这是其中一个txt的内容
<p>
<strong>Debregeasia orientalis</strong> C. J. Chen in Novon 1:56. 1991.</p><p><em>Debregeasia edulis</em> auct. non(Sieb. et Zucc.)Wedd. :中国高等植物图鉴1:523. 1972.</p><p></p><p>灌木,高达4米。小枝被贴生白色柔毛,后无毛。叶纸质或薄纸质,长圆状披针形或线状披针形,长5-18(-25)厘米,先端渐尖或短渐尖,基部圆或宽楔形,有不等细锯齿或细牙齿,上面常泡状隆起,疏生糙毛,钟乳体点状,下面被白或灰绿色毡毛,脉上疏生柔毛,基出脉3,侧脉3-5对;叶柄长0.3-1厘米,被贴生柔毛,托叶披针形,长6-8毫米,顶端2浅裂。花雌雄异株,稀同株,生于去年生枝和老枝叶腋,二回二歧分枝或二叉分枝,具短梗或无梗,长1-1.5厘米,分枝顶端生球状团伞花簇。雄花花被片4,下部合生,裂片三角状卵形,疏生微柔</p><p>产西藏东部、云南、广西、贵州、四川、甘肃南部、陕西南部、湖北、湖南及台湾,生于海拔300-2800米溪谷河流两岸潮湿地区。日本有分布。为纤维植物;果可食;叶可作饲料。</p><p></p><p></p><p><p align="center"><img align="absmiddle" src="/CRFDPIC/R201309699/R201309699.XT04-0226.jpg"/></p></p><p><p align="center">水麻 (王金凤绘)</p></p><p><p align="center"><img align="absmiddle" src="/CRFDPIC/R201309699/R201309699.ZP04-064.jpg"/></p></p><p><p align="center">水麻 Debregeasia orientalis (郎楷永)</p></p><p><p align="center"><img align="absmiddle" src="/CRFDPIC/R201309699/R201309699.4-36-21-4.jpg"/></p>
</p>
里面有一个jpg文件的名字(红色部分),我想提取txt中的蓝色的名字,替换为图片文件名字,哪位老师能不能帮我弄弄?
作者: hlzj88 时间: 2016-1-30 19:19
本帖最后由 hlzj88 于 2016-1-30 19:20 编辑
最好把网页链接放上来
作者: wenlishasha 时间: 2016-1-30 23:15
回复 2# hlzj88
没有网页链接,文件是他们给的
作者: hlzj88 时间: 2016-1-30 23:54
这样你从文本挑前面,中间,后面,都上传两个,
作者: hlzj88 时间: 2016-1-31 01:08
你后面上传的txt里除了最后的 R2013097080001870.txt和 R2013097080001872.txt里有jpg图片,其余全没有。
且 内容上 可供改名的是 1-2. 巾唇兰 3-8. 槌柱兰 (冀朝祯绘),而没有 如顶楼的 水麻 Debregeasia orientalis (郎楷永) 这样的第二行汉字,那么你确认是要1 所有图片都改名 2 没有第二行汉字就用第一行汉字吗
作者: hlzj88 时间: 2016-1-31 02:19
因为你的文本是utf-8格式的,因此需要先进行转码,因为转码的bat只可以使用一次,因此,把这个bat单独出来- @echo off
- echo 这是编码转换bat,对于utf8格式文本转换为ansi格式,但只敢使用一次,不可重复使用
- pause
- for %%a in (*.txt) do (
- title 编码转换 文件是 %%a
- iconv -c -f utf-8 -t gb2312 "%%a" >"gb%%a"
- move /y "gb%%a" "%%a">nul
- )
复制代码
转码完成后可以使用下面的bat,经测试可以完成图片重命名, 但建议对原文件要进行备份,切记。- @echo off&setlocal enabledelayedexpansion
- del test.*
- for /f %%i in ('dir /b "*.jpg"') do (
- echo ^<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"^>^<html
-
- xmlns="http://www.w3.org/1999/xhtml"^<head^>^<meta http-equiv="Comtent-type" content="text/html; charset=gb2312"^>>test.html
- for /f %%b in ('dir /b *.txt') do (
- type "%%b"|findstr /ic:"%%i"&&type "%%b"|findstr /ic:"strong">>test.html
- )
- echo ^</html^>>>test.html
- htox32c /IP /O0 test.html>nul 2>nul
- for /f "delims=" %%c in (test.txt) do (
- set "foo=%%c"
- set foo=!foo: =!
- set foo=!foo: =!
- echo !foo!>>ws.ini
- )
- move /y ws.ini test.txt>nul 2>nul
- for /f "delims=" %%d in ('type "test.txt"') do set "str1=%%d"
- ren "%%i" "!str1!.jpg"
- del test.txt
- )
- del test.html
- pause
复制代码
作者: hlzj88 时间: 2016-1-31 02:29
本帖最后由 hlzj88 于 2016-1-31 09:53 编辑
涉及到的两个第三方程序, htox32c和 iconv本坛有,你搜索
另 你所有的上传的txt,只有三个里面有jpg, 而且有两个的图片是一样的,因此测试一定要备份。
作者: wenlishasha 时间: 2016-1-31 10:03
回复 7# hlzj88
好的,非常感谢!!
作者: 依山居 时间: 2016-1-31 10:29
回复 8# hlzj88
往坏的猜是完全不舍得用心。
作者: wenlishasha 时间: 2016-1-31 10:31
本帖最后由 wenlishasha 于 2016-1-31 10:35 编辑
回复 8# hlzj88
iconv 不知道如何使用?请老师赐教!我放在bat目录和放在system32目录下都试过,一运行转码txt都变为0字节了
作者: hlzj88 时间: 2016-1-31 10:49
你说的两个位置都是可以的,只能说你的txt可能部分是ansi格式的,但你上传的又都是Utf-8的,所以我才单独用了这个,要不,编码转换的你先不用,试试改名的,看结果咋样,还是要注意备份。
作者: wenlishasha 时间: 2016-1-31 11:11
回复 12# hlzj88
嗯嗯
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |