标题: [文本处理] [已解决]批处理怎样将指定字符串值写入文本文件? [打印本页]
作者: 447219071 时间: 2015-9-25 10:13 标题: [已解决]批处理怎样将指定字符串值写入文本文件?
本帖最后由 447219071 于 2015-10-8 21:53 编辑
求批处理:将A.htm文件内CPULINK字符串后后的值导出另生成A.TXT
A.htm内容如下:- <div>cpulink=http://www.1.com</div>
- <p>cpulink=http://www.2.com<br />
- <div>cpulink=http://www.3.com</div>
- <p>cpulink=http://www.4.com<br />
复制代码
尽量不要第三方工具
只是提供个思路:查找cpulink后的值,截至字符“<”
生成A.TXT文件内容如下,每个值为一断行(注意:没有空行,三楼的结果页生成的文本文件最后有一个空行):- http://www.1.com
- http://www.2.com
- http://www.3.com
- http://www.4.com
复制代码
本人为批处理菜鸟,请各位大大帮忙
作者: pcl_test 时间: 2015-9-25 13:13
- ::先下载第三方http://batch-cn.qiniudn.com/tool/2.5.1/grep.exe
- grep -oP "(?<=cpulink=)[^<]+" "A.htm">"A.txt"
复制代码
作者: terse 时间: 2015-9-25 15:36
- @echo off&setlocal enabledelayedexpansion
- (for /f "delims=" %%i in (A.htm) do (
- set "str=%%i"
- set "str=!str:*cpulink=!"
- if "!str!" neq "%%i" if "!str:~,1!" == "=" (
- for /f "delims==<" %%i in ("!str!") do echo %%i
- )
- ))>A.txt
- pause
复制代码
JS 混编- @if(0)==(0) echo off & cscript -NoLogo -E:JScript %0 <a.htm >a.txt & pause & exit @end
- var reg = /cpulink=([^<]+)/ig;
- while (!WScript.StdIn.AtEndOfStream){
- var str = WScript.StdIn.ReadLine();
- var s = str.match(/cpulink=([^<]+)/);
- if (s) { WSH.Echo(s[1]) };
- }
复制代码
作者: 447219071 时间: 2015-9-26 00:58
回复 3# terse
高手,请问不要最后一行的空行,行吗?
作者: /zhqsystem/zhq 时间: 2015-9-26 02:52
@echo off&color 0e
(for /f "tokens=1,* delims==" %%i in (A.htm.txt) do (
for /f "tokens=1,* delims=^<" %%k in ("%%j") do (
echo=%%k|findstr/i "^http">nul2>nul&&(
echo=%%k
)
))
)>new_A.htm
pause
作者: shenlong 时间: 2015-10-2 19:17
回复 1# 447219071
来一个简单的:
for /f "tokens=1-5 delims=<=> " %%a in (a.htm) do echo.%%c>>a.txt
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |