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

ps没那么复杂
  1. $data=gc a.txt
  2. $s=New-Object 'System.Collections.Generic.List[string][]' 3
  3. $f='企业'
  4. for($i=0;$i -lt $data.Count;$i++){
  5.     if($data[$i] -match $f){
  6.         [int]$c=$c%2+1
  7.         $s[$c]=[regex]::Matches($data[$i],"$f.+")
  8.         if($s[1] -ne $s[2]){
  9.             $b=$data[$i-1]
  10.             $data[$i-1]="$($b)`r`n$([regex]::Matches($b,'.+>'))   退出"
  11.         }
  12.     }
  13. }
  14. $data=$data -split '\r\n'
  15. $data[0..($data.Count-2)]>b.txt
复制代码
bat
  1. @echo off&setlocal enabledelayedexpansion
  2. set n=100
  3. for /f "delims=" %%1 in (a.txt)do set /a n+=1&call set "#%%n%%=%%1"
  4. for /f "tokens=1,2,6* delims=#= " %%1 in ('set #')do (
  5. set /a a=%%1
  6. set "line=%%3%%4%%5"
  7. set d=!line:*   =!
  8. set d=!d:~,2!
  9. if !d!==企业 (
  10. call set "s!c!=!line!"
  11. set /a c=c %% 2+1
  12. if !s1! neq !s2! (
  13. set /a b=a-1
  14. call set "#!b!#=%%#!b!:+=%%退出"
  15. )))
  16. (for /f "tokens=2* delims==" %%1 in ('set #')do echo %%1)>b1.txt
复制代码

TOP

本帖最后由 Nsqs 于 2023-8-20 18:59 编辑
  1. $data=gc a.txt
  2. $s=New-Object 'System.Collections.Generic.List[string][]' 3
  3. $f='企业'
  4. [string[]]$x=@{}
  5. @(for($i=0;$i -lt $data.Count;$i++){
  6.     $x+=$data[$i]
  7.     if($data[$i] -match $f){
  8.         [int]$c=$c%2+1
  9.         $s[$c]=[regex]::Matches($data[$i],"$f.+")
  10.         if($s[1] -ne $s[2] -and $x -notmatch '退出'){
  11.             $b=$data[$i-1]
  12.             if($i -gt 1){[PSCustomObject]@{'Changed'="Source:`t$("$i".PadLeft(4))";Source=$($data[$i-1])}}
  13.             $r="$([regex]::Matches($b,'.+>'))   退出"
  14.             $data[$i-1]="$($b)`r`n$r"
  15.             if($i -gt 1){[PSCustomObject]@{'Changed'="New`t$("$($i+1)".PadLeft(4))";Source=$r}}
  16.         }
  17.         $x=@{}
  18.     }
  19. })|ft -Wrap -AutoSize
  20. $data=$data -split '\r\n'
  21. $data[0..($data.Count-2)]>b.txt
  22. cmd /c pause
复制代码
不知道是不是这样呢?

TOP

返回列表