批处理如何提取指定字符之间的内容

有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了)。希望你能改一下代码,可以输出多个文档里的多个连接。谢谢

回答补充
.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
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-10-30
推荐用软件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中。

怎么用bat批处理提取文本特定字符之间的内容?
不清楚你的实际文件\/情况,仅以问题中的样例\/说明及猜测为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的多个文件放一起双击运行 <# :cls&echo off&cd \/d "%~dp0"&mode con lines=5000rem 从当前目录里的每一个txt文本文件内提取出两个指定字符之间的内容set #=Any q...

Windows批处理CMD如何截取一个字符串中指定字符后面的字符串?
1、首先打开cmd窗口,然后输入格式 :%PATH:str1=str2% 将字符串的变量%PATH%中的str1替换为str2。2、在尝试将www.baidu.com中的.更改为。3、字符串截取格式:%a:~[m[,n]]% 方括号表示可选,%为变量标识符,a为变量名,不可少,冒号用于分隔变量名和说明部分,符号~可以简单理解为“偏移...

用批处理截取XML档案中两个关键字符串之间的内容
>3.xmlpausegoto :eof:getsubfor \/f "tokens=1,* delims=:=" %%a in ("%*") do (if "%%a"=="<HardwareHash>" ( set __retval==%%b ) else ( call :getsub %%b ))goto :eof:getnextfor \/f "tokens=1,* delims=A" %%a in ("%*") do (set a=%%bif "<\/HardwareHash>...

用批处理截取XML档案中两个关键字符串之间的内容
(2.txt) do ( echo %%a>3.TXT ) del \/s \/q 1.txt del \/s \/q 2.txt start "" "3.txt" pause>nul ::代码二: for \/f "tokens=2 delims=<>" %%a in ('findstr \/i \/c:"<HardwareHash>" 123.XML') do (echo %%a)>456.ini :: 中国批处理脚本联盟 ...

如何用批处理获取文本中两段指定字符串中间的内容
Any question +%@%%@% %n%cd \/d "%~dp0"rem 保存为xx.bat跟文本放一起运行set "file=test.txt"powershell "if(((gc '%file%') -join \\"`r`n\\") -match '\\"counts\\":(.+?),\\"match\\"'){$matches[1]}"echo;Any question +%@%%@% %n%pause ...

...批处理或其他方式,截取TXT文本中指定字符间的内容到新的文本文件_百...
大量不需要的字符,这段不是数字开头吧?用emeditor,ctrl+f 搜索&IA01.*?&IA20=\\d+ 搜索的时候勾选使用正则表达式,右边的全部选择改成全部提取,并且提取选项里改成仅显示匹配的字符。点全部提取会自动生成一个文件,文件里显示的就是提取的内容。

怎样用批处理截取某个文本中指定字符串之后的内容并输出到另一个文本...
echo !str!>>temp.txt ) else (echo %%i>>temp.txt ))copy temp.txt a.txt \/y del temp.txt \/f start a.txt 直接更改做不到了。可以提取文本的每一行,把要修改的行,修改好后,和不用修改的行重新输入到另一个文件(也可以用变量代替)。再把这个修改好的文件,覆盖掉原来的文本文件。

批处理如何用正则提取字符串中间的数字,和结尾的数字
假设源文件名为test.txt(请自定义)echo offfor \/f "tokens=2,4 delims==&" %%a in ('type test.txt^|findstr "id=.*&user=.*"') do (echo;id 是 %%a echo;user 是 %%b)pause

批处理如何提取文本中指定内容?
不清楚你的实际文件\/情况,仅以问题中的样例\/说明为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的文件放一起运行 <# :cls echo off rem 从多个txt文本文件内提取指定特征字符串内容 set #=Any question&set @=WX&set $=Q&set\/az=0x53b7e0b4 title %#% +%$%%$%...

批处理如何提取指定字符之间的内容
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>...

相似回答