[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
脑子不灵活的我只能用最原始的方式弄出来,powershell代码
  1. $inf="a.txt"
  2. $otf="b.txt"
  3. $r='企业\s*名称.+|退出'
  4. $inf=[io.file]::ReadAllLines($pwd.path+"\$inf",[text.encoding]::Default)
  5. if(!$inf){exit}
  6. $n=0
  7. $f=[System.IO.StringWriter]::new()
  8. for($i=0;$i -lt $inf.Length;$i++){
  9. if(!$inf[$i]){$f.WriteLine();continue}
  10. if($n -and $n[1]){
  11. $m=[regex]::Match($inf[$i],"$r")
  12. if($m.success -and ($m.value -eq "退出")){$f.WriteLine($inf[$i]);$n=0;continue}
  13. #if($m.success -and ($m.value.split(':')[1] -eq $n.split(':')[1])){$f.WriteLine($inf[$i]);$n=0;continue}
  14. if($m.success -and ($m.value -eq $n[1])){$f.WriteLine($inf[$i]);$n[0]=$i;continue}
  15. if($m.success){
  16. $z=[regex]::Match($inf[$n[0]],">\s*")
  17. echo "从原文本第 $i 行后插入"
  18. $f.WriteLine($inf[$n[0]].substring(0,$z.index+$z.length)+"退出");
  19. $f.WriteLine($inf[$i])
  20. $n=@($i,$m.value);continue}
  21. $f.WriteLine($inf[$i]);$n[0]=$i;continue
  22. }
  23. $m=[regex]::Match($inf[$i],"$r")
  24. if($m.success -and ($m.value -ne "退出")){$n=@($i,$m.value)}
  25. $f.WriteLine($inf[$i])
  26. }
  27. if($n){
  28. $z=[regex]::Match($inf[$n[0]],">\s*")
  29. echo "从原文本末尾插入"
  30. $f.WriteLine($inf[$n[0]].substring(0,$z.index+$z.length)+"退出");
  31. }
  32. [io.file]::WriteAllText($pwd.path+"\$otf",$f.ToString(),[text.encoding]::default)
  33. pause;$f.Dispose()
复制代码

TOP

返回列表