Board logo

标题: [文本处理] 【已解决】请教批处理合并文本方面的事情,谢谢前辈们 [打印本页]

作者: 灯塔彭于晏    时间: 2020-12-16 08:57     标题: 【已解决】请教批处理合并文本方面的事情,谢谢前辈们

[i=s] 本帖最后由 灯塔彭于晏 于 2020-12-16 15:50 编辑 [/i]

各位前辈大家好,特来请教一点bat知识,想实现下面的内容。

现在有2个文本,A.TXT内容如下(每行1个数字):
1
2
3
4
5
6
7
9
10
11
12

B.TXT内容如下:
<div class="pic-title"><p><span class="tupiantitle">#</span></p></div>
<p><img src="http://baidu.com/gangqin141.jpg"/></p>   
<div class="pic-title"><p><span class="tupiantitle">#</span></p></div>
<p><img src="http://baidu.com/gangqin142.jpg"/></p>   
<div class="pic-title"><p><span class="tupiantitle">#</span></p></div>
<p><img src="http://baidu.com/gangqin143.jpg"/></p>   
<div class="pic-title"><p><span class="tupiantitle">#</span></p></div>
<p><img src="http://baidu.com/gangqin144.jpg"/></p>   
<div class="pic-title"><p><span class="tupiantitle">#</span></p></div>
<p><img src="http://baidu.com/gangqin145.jpg"/></p>   
<div class="pic-title"><p><span class="tupiantitle">#</span></p></div>
<p><img src="http://baidu.com/gangqin146.jpg"/></p>  



实现将A中的内容,依次输入到B中的#中。实现效果如下:


<div class="pic-title"><p><span class="tupiantitle">1</span></p></div>
<p><img src="http://baidu.com/gangqin141.jpg"/></p>   
<div class="pic-title"><p><span class="tupiantitle">2</span></p></div>
<p><img src="http://baidu.com/gangqin142.jpg"/></p>   
<div class="pic-title"><p><span class="tupiantitle">3</span></p></div>
<p><img src="http://baidu.com/gangqin143.jpg"/></p>   
<div class="pic-title"><p><span class="tupiantitle">4</span></p></div>
<p><img src="http://baidu.com/gangqin144.jpg"/></p>   
<div class="pic-title"><p><span class="tupiantitle">5</span></p></div>
<p><img src="http://baidu.com/gangqin145.jpg"/></p>   
<div class="pic-title"><p><span class="tupiantitle">6</span></p></div>
<p><img src="http://baidu.com/gangqin146.jpg"/></p>  

……

<div class="pic-title"><p><span class="tupiantitle">12</span></p></div>
<p><img src="http://baidu.com/gangqin146.jpg"/></p>  

谢谢谢谢
作者: smss    时间: 2020-12-16 13:56

保存为ps1运行
  1. $global:n = 0;
  2. $arr = (gc A.txt -ReadCount 0) -notmatch '^\s*$';
  3. $str = (gc B.txt -ReadCount 0) -join "`r`n";
  4. $str = [regex]::Replace($str, '#', {$arr[$global:n++]});
  5. sc B.txt -Value $str;
复制代码

作者: WHY    时间: 2020-12-16 14:34

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. (for /f "delims=" %%i in (b.txt) do (
  4.     set "s=%%i"
  5.     if "!s:>#<=!" NEQ "!s!" (
  6.         set /p "n="
  7.         for %%j in ("!n!") do set "s=!s:>#<=>%%~j<!"
  8.     )
  9.     echo;!s!
  10. )) < a.txt
  11. pause
复制代码

作者: 灯塔彭于晏    时间: 2020-12-16 15:27

WHY 发表于 2020-12-16 14:34



    谢谢你啊!
作者: qixiaobin0715    时间: 2020-12-16 15:30

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set m=0
  4. for /f "delims=" %%a in (a.txt) do (
  5.     set "str=%%a"
  6.     set /a m+=1&set _!m!=%%a
  7. )
  8. set n=1
  9. (for /f "delims=" %%b in (b.txt) do (
  10.     set "var=%%b"
  11.     set /a num=_!n!
  12.     for %%c in (!num!) do set "var=!var:>#<=>%%c<!"
  13.     if not "!var!"=="%%b" set /a n+=1
  14.     echo !var!
  15. ))>c.txt
  16. pause
复制代码





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