Board logo

标题: [文本处理] 删除文本中的指定字符串并行间随机插入一行内容 [打印本页]

作者: heychaw    时间: 2015-2-9 10:05     标题: 删除文本中的指定字符串并行间随机插入一行内容

批处理修改文本,有点小复杂吧!

首先是把这段文本(文件名叫a.txt)的第一行的一对"<p></p>"去掉,然后把"{-File.GetString-|-D:\article\aaaa-|-0-|-false-}"这行代码随机加入到a.txt文本中(加入3个)。



就像这样子



添加到哪行都无所谓,但是不能添加到第一行。


作者: heychaw    时间: 2015-2-9 13:17

有没有朋友帮个忙啊
作者: pcl_test    时间: 2015-2-9 15:28

本帖最后由 pcl_test 于 2015-2-9 16:59 编辑

回复 1# heychaw
假设有文档test.txt
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set n=0
  4. set m=1
  5. for /f "delims=" %%a in ('type "test.txt"') do (
  6. set /a n+=1
  7. )
  8. :getnumber
  9. set /a t1=2+%random%%%(2-n+1)
  10. set /a t2=2+%random%%%(2-n+1)
  11. set /a t3=2+%random%%%(2-n+1)
  12. if %t1%==%t2% (
  13.   goto getnumber
  14. ) else (
  15.     if %t2%==%t3% (
  16.       goto getnumber
  17.     ) else (
  18.       if %t1%==%t3% (
  19.         goto getnumber
  20.       ) else (
  21.       goto getecho
  22.       )
  23.     )
  24. )
  25. :getecho
  26. echo 代码将随机添加到第%t1%、%t2%、%t3%行
  27. for /f "delims=" %%a in ('type "test.txt"') do (
  28. if !m!==1 (
  29. set str=%%a
  30. set str=!str:~3,-4!
  31. >"tmp.txt" echo,!str!
  32. ) else (
  33.   if !m!==%t1% (
  34.   >>"tmp.txt" echo,%%a{-File.GetString-^|-D:\article\aaaa-^|-0-^|-false-}
  35.   ) else (
  36.     if !m!==%t2% (
  37.     >>"tmp.txt" echo,%%a{-File.GetString-^|-D:\article\aaaa-^|-0-^|-false-}
  38.     ) else (
  39.       if !m!==%t3% (
  40.       >>"tmp.txt" echo,%%a{-File.GetString-^|-D:\article\aaaa-^|-0-^|-false-}
  41.       ) else (
  42.       >>"tmp.txt" echo,%%a
  43.       )
  44.     )
  45.   )
  46. )
  47. set /a m+=1
  48. )
  49. rem move "tmp.txt" "test.txt"
  50. echo 完成!
  51. pause
复制代码





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