[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
回复 26# flashercs


    附件已上传 您再给看看编辑一下

TOP

回复 31# w31575801


    log中还有些行开头不是时间格式,里面还有叹号!
  1. <#*,:&cls
  2. @echo off
  3. pushd "%~dp0"
  4. powershell -NoProfile -ExecutionPolicy RemoteSigned -Command ". ([ScriptBlock]::Create((Get-Content -LiteralPath \"%~0\" -ReadCount 0 | Out-String ))) "
  5. popd
  6. pause
  7. exit /b
  8. #>
  9. # 起始时间
  10. $dtmBegin = "02:31:37.501"
  11. # 终止时间
  12. $dtmEnd = "03:42:00.140"
  13. $logglob = "*.log"
  14. $dtmLength = $dtmBegin.Length
  15. $dtmFormat = "[0-9][0-9]:[0-9][0-9]:[0-9][0-9].[0-9][0-9][0-9]"
  16. $buffer = 65536
  17. # utf8-nobom
  18. $encoding = New-Object System.Text.UTF8Encoding -ArgumentList @($false)
  19. foreach ($logfile in (Convert-Path -Path $logglob | Where-Object { Test-Path -LiteralPath $_ -PathType Leaf })) {
  20.   Write-Host $logfile -ForegroundColor Green
  21.   try {
  22.     $stream1 = New-Object System.IO.FileStream -ArgumentList @($logfile, [System.IO.FileMode]::Open, [System.IO.FileAccess]::Read, [System.IO.FileShare]::ReadWrite, $buffer)
  23.     $stream2 = New-Object System.IO.FileStream -ArgumentList @($logfile, [System.IO.FileMode]::Open, [System.IO.FileAccess]::Write, [System.IO.FileShare]::Read, $buffer)
  24.     $sr = New-Object System.IO.StreamReader -ArgumentList @($stream1, $encoding, $true, $buffer)
  25.     $sw = New-Object System.IO.StreamWriter -ArgumentList @($stream2, $encoding, $buffer)
  26.     $flag = $false
  27.     while (!$sr.EndOfStream) {
  28.       $strLine = $sr.ReadLine()
  29.       $dtmStr = $strLine.Substring(0, [Math]::Min($dtmLength, $strLine.Length))
  30.       if ($dtmStr -notlike $dtmFormat) {
  31.         $sw.WriteLine($strLine)
  32.         continue
  33.       }
  34.       if (!$flag) {
  35.         if ($dtmStr -ge $dtmBegin) {
  36.           if ($dtmStr -lt $dtmEnd) {
  37.             $sw.WriteLine($strLine)
  38.             $flag = $true
  39.           } else {
  40.             break
  41.           }
  42.         }
  43.       } else {
  44.         if ($dtmStr -lt $dtmEnd) {
  45.           $sw.WriteLine($strLine)
  46.         } else {
  47.           $flag = $false
  48.           break
  49.         }
  50.       }
  51.     }
  52.     $sw.Flush()
  53.     $stream2.SetLength($stream2.Position)
  54.   } catch {
  55.     $_ | Write-Host -ForegroundColor Red
  56.   } finally {
  57.     if ($sr) {
  58.       $sr.Dispose()
  59.     }
  60.     if ($sw) {
  61.       $sw.Dispose()
  62.     }
  63.     if ($stream1) {
  64.       $stream1.Dispose()
  65.     }
  66.     if ($stream2) {
  67.       $stream2.Dispose()
  68.     }
  69.   }
  70. }
复制代码
微信:flashercs
QQ:49908356

TOP

回复 32# flashercs


    已采纳,万分感谢

TOP

返回列表