批处理如何提取指定字符之间的内容
有N个HTM网页,里面的内容如下:</p><divclass="image"purpose="image"><table><tr><td><imgclass="break...
有N个HTM网页,里面的内容如下:</p><div class="image" purpose="image"><table><tr><td><img class="break" src="00n5/GUID-B359BC15-D7AF-48AC-B3CA-D7F6D8AE05FF-web.gif" purpose="img" alt="识别可信度差" title="识别可信度差"></td></tr></table></div><p id="GUID-3236A6EC-80D3-4982-B7EA-A8BB74412525">
现在我想要是提取00n5/GUID-B359BC15-D7AF-48AC-B3CA-D7F6D8AE05FF-web.gif
并在前面加上http://www.hao123/
类似这样:http://www.hao123/00n5/GUID-B359BC15-D7AF-48AC-B3CA-D7F6D8AE05FF-web.gif
注:一个网页内容可能有好几个GIF文件,GIF文件名并不固定
谢谢
即提取所有GIF的连接并在前面加上固定网址
然后输出到一个TXT文本中
应该是http://www.hao123.com/
问题里面的少了个.com
第二次补充:先谢谢lovemezhoupeng,我测试了一下,只有一个文件的时候,可以读出连接,但只有一个连接出来,其他读不出来。还有就是有多个文件的时候,提示找不到GIF文件(我把你批处理的.jpg都改为.gif了)。希望你能改一下代码,可以输出多个文档里的多个连接。谢谢 展开
现在我想要是提取00n5/GUID-B359BC15-D7AF-48AC-B3CA-D7F6D8AE05FF-web.gif
并在前面加上http://www.hao123/
类似这样:http://www.hao123/00n5/GUID-B359BC15-D7AF-48AC-B3CA-D7F6D8AE05FF-web.gif
注:一个网页内容可能有好几个GIF文件,GIF文件名并不固定
谢谢
即提取所有GIF的连接并在前面加上固定网址
然后输出到一个TXT文本中
应该是http://www.hao123.com/
问题里面的少了个.com
第二次补充:先谢谢lovemezhoupeng,我测试了一下,只有一个文件的时候,可以读出连接,但只有一个连接出来,其他读不出来。还有就是有多个文件的时候,提示找不到GIF文件(我把你批处理的.jpg都改为.gif了)。希望你能改一下代码,可以输出多个文档里的多个连接。谢谢 展开
2个回答
展开全部
回答补充
.jpg都改为.gif不够,要jpg都改为gif,要改5处地方
网页代码本来就比较复杂,有时一行有3000多个字符
而且有些字符*^><$等不同软件处理不同
所以还是要知道你根本目的,知道你文件大致内容
最好联系到人聊一聊
我自已测试都行,但不代表测试了所有情况
===================================================
XXX.bat脚本代码如下
需要小小的修改,根据自己情况完成:
第三行pbuf指向你的N个HTM网页存储路径
第四行wwwbuf的值是你要加的固定网址,可以自己修改
@echo off
color 0b & cls
set "pbuf=F:\WorkTemp"
set "wwwbuf=http://www.hao123.com/"
del tmp.txt >nul 2>nul
del rlt.txt >nul 2>nul
for /r "%pbuf%" %%i in (*.htm*) do (
findstr . "%%i">>"tmp.txt"
)
for /r %%i in (tmp.txt) do (
findstr ".gif" "%%i">>"rlt.txt"
)
del tmp.txt >nul 2>nul
for /r %%i in (rlt.txt) do (
findstr "src=" "%%i">>"tmp.txt"
)
del rlt.txt >nul 2>nul
setlocal enabledelayedexpansion
for /f "delims=" %%i in (tmp.txt) do (
set "sbuf=%%i"
set sbuf=!sbuf:"=!
set sbuf=!sbuf:^<=!
set sbuf=!sbuf:^>=!
set sbuf=!sbuf:^(=!
set sbuf=!sbuf:^)=!
set sbuf=!sbuf:*src=!
set sbuf=!sbuf:*src=!
set sbuf=!sbuf:*src=!
set sbuf=!sbuf:~1!
set sbuf=!sbuf:.gif=.gif zhoup gif!
call :setsbuf !sbuf!
echo !wwwbuf!!sbuf!>>rlt.txt
)
del tmp.txt >nul 2>nul
endlocal
goto :last
:setsbuf
set sbuf=%1
:setsbuff
shift 1
if "a%1a"=="aa" goto :eof
if not "%1"=="zhoup" (set sbuf=!sbuf! %1) & (goto setsbuff)
goto :eof
:last
echo.
if exist rlt.txt (
echo 已经完成,请查看%cd%\rlt.txt
) else (echo 没有找到gif文字段)
pause
.jpg都改为.gif不够,要jpg都改为gif,要改5处地方
网页代码本来就比较复杂,有时一行有3000多个字符
而且有些字符*^><$等不同软件处理不同
所以还是要知道你根本目的,知道你文件大致内容
最好联系到人聊一聊
我自已测试都行,但不代表测试了所有情况
===================================================
XXX.bat脚本代码如下
需要小小的修改,根据自己情况完成:
第三行pbuf指向你的N个HTM网页存储路径
第四行wwwbuf的值是你要加的固定网址,可以自己修改
@echo off
color 0b & cls
set "pbuf=F:\WorkTemp"
set "wwwbuf=http://www.hao123.com/"
del tmp.txt >nul 2>nul
del rlt.txt >nul 2>nul
for /r "%pbuf%" %%i in (*.htm*) do (
findstr . "%%i">>"tmp.txt"
)
for /r %%i in (tmp.txt) do (
findstr ".gif" "%%i">>"rlt.txt"
)
del tmp.txt >nul 2>nul
for /r %%i in (rlt.txt) do (
findstr "src=" "%%i">>"tmp.txt"
)
del rlt.txt >nul 2>nul
setlocal enabledelayedexpansion
for /f "delims=" %%i in (tmp.txt) do (
set "sbuf=%%i"
set sbuf=!sbuf:"=!
set sbuf=!sbuf:^<=!
set sbuf=!sbuf:^>=!
set sbuf=!sbuf:^(=!
set sbuf=!sbuf:^)=!
set sbuf=!sbuf:*src=!
set sbuf=!sbuf:*src=!
set sbuf=!sbuf:*src=!
set sbuf=!sbuf:~1!
set sbuf=!sbuf:.gif=.gif zhoup gif!
call :setsbuf !sbuf!
echo !wwwbuf!!sbuf!>>rlt.txt
)
del tmp.txt >nul 2>nul
endlocal
goto :last
:setsbuf
set sbuf=%1
:setsbuff
shift 1
if "a%1a"=="aa" goto :eof
if not "%1"=="zhoup" (set sbuf=!sbuf! %1) & (goto setsbuff)
goto :eof
:last
echo.
if exist rlt.txt (
echo 已经完成,请查看%cd%\rlt.txt
) else (echo 没有找到gif文字段)
pause
展开全部
推荐用软件Replace Pioneer来提取文件中的src="xxxx.gif",并按指定的格式生成文本:
详细步骤:
1. ctrl-h打开replace窗口
* 去掉print unmatched unit前面的勾
* 在search for pattern输入src="([^"]*?\.gif)"用来匹配src="xxx.gif"
* 在replace with pattern输入"http://www.hao123.com/\1\n"(不带双引号)
* 把output file左边的>改为">> Append"表示追加
2. 点击Batch按钮打开Batch Runner
* 把多个html文件从windows文件管理器拖拽到Batch Runner窗口中
* 选中Set output filename,把后面的${FILENAME}改为结果文件名,比如r.txt
* 点击Batch Replace即可把所有的http://www.hao123.com/***gif追加到r.txt中。
详细步骤:
1. ctrl-h打开replace窗口
* 去掉print unmatched unit前面的勾
* 在search for pattern输入src="([^"]*?\.gif)"用来匹配src="xxx.gif"
* 在replace with pattern输入"http://www.hao123.com/\1\n"(不带双引号)
* 把output file左边的>改为">> Append"表示追加
2. 点击Batch按钮打开Batch Runner
* 把多个html文件从windows文件管理器拖拽到Batch Runner窗口中
* 选中Set output filename,把后面的${FILENAME}改为结果文件名,比如r.txt
* 点击Batch Replace即可把所有的http://www.hao123.com/***gif追加到r.txt中。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询