Board logo

标题: [文本处理] 批处理如何提取txt字符段 替换 .html 中指定内容? [打印本页]

作者: kissbzm    时间: 2021-10-23 20:03     标题: 批处理如何提取txt字符段 替换 .html 中指定内容?

A.txt
12345 113231 456456
123124 3456646 2342352

B.html
group.png"></a>556397024</SPAN>
group.png"></a>*********</SPAN>
没每次运行 提取 A.txt 最后一行 第一段  替换 B.htm 的 中的数字 (星号内容)

其中的txt中的 1段 2段 3段 需要替换 不同的 html
作者: yakeyun    时间: 2021-10-24 16:22

回复 1# kissbzm


给你一个思路,你先操作看看:
既然是A.TXT文本的最后一行,那么可以用for命令读取,然后用“>”覆盖写入方式只获取最后一行数据,避免出现空格,可用“delims=,”跳过空格,这样就获取到了第一行数据了。再断句分别取得最后一行文本的三段语句,并依次赋值。
B.html也用for语句获取,不过要预先赋值"group.png"></a>"和</SPAN>,然后用echo命令把A的变量和赋值的变量顺序输出到新文本,此时需要用“>>”连续写入方式导出。
作者: yakeyun    时间: 2021-10-24 18:02

回复 2# yakeyun

代码自测

@echo off
@cd/d "%~dp0"
setlocal enabledelayedexpansion
for /f "delims=,  " %%a in ('type a.txt') do echo %%a >.\aa.txt
for /f "tokens=1-3 delims=, " %%b in ('type aa.txt') do (
set bbb=%%b
set ccc=%%c
set ddd=%%d
)
(for /f %%i in ('type b.html') do (
set "aba=group.png"
set "abb=""
set "abc=></a>"
set "abd=</SPAN>"
echo !aba!!abb!!abc!!bbb!!abd!
)) >>.\c.html
if exit b.html (del b.html & ren c.html b.html)
if exit aa.txt (del aa.txt)
exit
作者: aloha20200628    时间: 2021-10-27 13:43

这类问题要纯P解决,先问清两个关键,一是网页是否是简中编码(GBK)?因为目前大部分网页还是采取 utf-8 编码,二是网页内有否超过 8K 的数据行?若都是,就不如改请其他脚本(如python/powershell/vbs 等)主刀一包到底了...




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2