Board logo

标题: [文本处理] 批处理如何逐行提取一个文本内容替换另一个文本中包含指定字符串的行? [打印本页]

作者: clock874    时间: 2017-1-3 07:24     标题: 批处理如何逐行提取一个文本内容替换另一个文本中包含指定字符串的行?

求教:逐行提取文本B内容替换A文本中指定包含指定字符串的行,感谢!跪谢!

查找文本A中包含“****”的行,从文本B中提取1行过来替换掉。要求文本B保留原始完整内容。

文本A:
3370385025
3372716120
2320623730
3074822688
3113919569****
3380331445
3481462131
1640186399
3360323479****
1575584147
3137458481
3384452511
3384697473
3384694533
3384634776
3384641763****
3360383189
3369851786
3506765120
2129537809
3462218589
3361301328
3359722392****
3427024626
475871963
1470859713
346739123****
3362265300
3369862948
3238318629

文本B:
1640186399
3360323479
1575584147
3137458481
3384452511
3384697473
3384694533
3384634776
3384641763
3360383189
3369851786
3506765120
2129537809
3462218589
3361301328
3359722392
3427024626

要求最后输出文本C:
3370385025
3372716120
2320623730
3074822688
1640186399
3380331445
3481462131
1640186399
3360323479
1575584147
3137458481
3384452511
3384697473
3384694533
3384634776
1575584147
3360383189
3369851786
3506765120
2129537809
3462218589
3361301328
3137458481
3427024626
475871963
1470859713
3384452511
3362265300
3369862948
3238318629
作者: hlzj88    时间: 2017-1-3 09:49

放样本上来,如果超大,放链接。
作者: flyinnet9    时间: 2017-1-3 15:43

  1. @echo off
  2. setlocal ENABLEDELAYEDEXPANSION
  3. (for /f "delims=" %%a in (b.txt) do (
  4.   set /a n+=1
  5.   set #!n!=%%a
  6. )
  7. set n=
  8. for /f "delims=" %%a in (a.txt) do (
  9.   set str=%%a
  10.   if "!str:~-4!"=="****" (
  11.     set /a n+=1
  12.     call echo.%%#!n!%%
  13.   ) else (
  14.     echo.%%a
  15.   )
  16. ))>c.txt
  17. pause
复制代码

作者: clock874    时间: 2017-1-3 16:23

非常感谢!已解决了!




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