[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 flashercs 于 2022-1-11 18:33 编辑
  1. $src = "ANSI.txt"
  2. $dst = "$src.log"
  3. $answers = 'ABCD'
  4. $reQuestion = [regex]"^\d+.*\(\s*([$answers])\s*\)\s*$"
  5. $stack = 0
  6. Get-Content -Path $src | ForEach-Object {
  7.   if ($stack -eq 0) {
  8.     $match = $reQuestion.Match($_)
  9.     if ($match.Success) {
  10.       $answer = $match.Groups[1].Value
  11.       $nextc = $answers[$answers.IndexOf($answer) + 1]
  12.       if ($null -eq $nextc) {
  13.         $reAnswer = "$answer.*?$"
  14.       } else {
  15.         $reAnswer = "$answer.*?(?=$nextc\.|$)"
  16.       }
  17.       $_
  18.       $stack = 1
  19.     }
  20.   } elseif ($stack -eq 1) {
  21.     if ($_ -match $reAnswer) {
  22.       $Matches[0]
  23.       $stack = 0
  24.     }
  25.   }
  26. } | Set-Content -Path $dst
复制代码
2

评分人数

    • 5i365: 感谢分享, 这种只能正则来搞了技术 + 1
    • for_flr: 感谢分享技术 + 1
微信:flashercs
QQ:49908356

TOP

回复 3# for_flr
  1. $answer=$answers[$l].split(@('A.','B.','C.','D.'),[StringSplitOptions]::RemoveEmptyEntries).trim() #四个选项分割开
复制代码
1

评分人数

微信:flashercs
QQ:49908356

TOP

返回列表