[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 yhcfsr 于 2019-1-7 23:50 编辑

脚本语言:BAT+Powershell 5.0
测试环境:WIN10
思路:在a.txt非空行与空行之间,依次取b.txt的两行插入
  1. <# :********非修改区开始**********
  2. @echo off
  3. more +7 "%~f0" >"%~n0.ps1"
  4. powershell -Mta -NoLogo -NoProfile -ExecutionPolicy bypass -File "%~n0.ps1"
  5. del /f /q "%~n0.ps1"
  6. ********非修改区结束**********#>
  7. $contentA=[io.file]::ReadAllLines('D:\test\work\a.txt',[text.encoding]::Default);#读A文件
  8. $contentB=[io.file]::ReadAllLines('D:\test\work\b.txt',[text.encoding]::Default);#读B文件
  9. [System.Collections.ArrayList] $result=@();
  10. $sum=0;
  11. foreach($lineA in $contentA)
  12. {
  13.     if($lineA){[void] $result.Add($lineA);$blank=$false;}
  14.     else{
  15.         if($contentB[$sum] -and !$blank){do{[void] $result.Add($contentB[$sum++]);}while($sum%2 -ne 0)}#出现空行时,插入b.txt两行
  16.         [void] $result.Add($lineA);
  17.         $blank=$true;
  18.     }
  19. }
  20. if($lineA -and $contentB[$sum]){do{[void] $result.Add($contentB[$sum++]);}while($sum%2 -ne 0)}#a.txt结尾无空行时插入b.txt两行
  21. [io.file]::WriteAllLines('result.txt',$result,[text.encoding]::Default);#输出结果
  22. pause
复制代码
1

评分人数

    • ivor: 简单问题,复杂化了吧技术 + 1
QQ 33892006

TOP

返回列表