[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
  1. <# :
  2. cls&echo off&cd /d "%~dp0"
  3. path %SYSTEMROOT%\System32\WindowsPowerShell\v1.0;%path%
  4. set "tmpfile=%tmp%\t.t"
  5. setlocal enabledelayedexpansion
  6. >"%tmpfile%" echo;!cmdcmdline!
  7. endlocal
  8. powershell -NoProfile -ExecutionPolicy bypass "Get-Content -literal '%~f0'|Out-String|Invoke-Expression"
  9. pause
  10. exit
  11. #>
  12. function exc($t){
  13.     $tt=[int]('1'+$t);
  14.     $n=-1;$nn='';
  15.     $zrr=@(100,120,140,160,180);
  16.     for($i=0;$i -lt $zrr.length;$i++){
  17.         $m=[Math]::Abs($zrr[$i] -$tt);
  18.         if($n -eq -1){
  19.             $n =$m;$nn =$zrr[$i].toString();
  20.         }else{
  21.             if($m -lt $n){
  22.                 $n =$m;$nn =$zrr[$i].toString();
  23.             }
  24.         }
  25.     }
  26.     return $nn.Substring(1);
  27. }
  28. $text=[IO.File]::ReadAllText(($env:tmpfile), [Text.Encoding]::GetEncoding('GB2312'));
  29. $files=($text.trim() -replace '^.+?\.(cmd|bat)" ','').replace('"','') -split ' (?=[a-z]:)';
  30. $enc=New-Object System.Text.UTF8Encoding $False;
  31. for($i=0;$i -lt $files.length;$i++){
  32.     write-host $files[$i];
  33.     $arr=New-Object -TypeName System.Collections.ArrayList;$flag=@(1,'');
  34.     $text=[IO.File]::ReadAllLines($files[$i], $enc);
  35.     for($j=0;$j -lt $text.count;$j++){
  36.         $line=$text[$j].trim();
  37.         $m=[regex]::match($line, '(\d+:\d+:\d+,)(\d\d\d)( ?--> ?\d+:\d+:\d+,)(\d\d\d)');
  38.         if($m.success){
  39.             $ts='';
  40.             $a=$m.groups[2].value.Substring(0,1)+(exc $m.groups[2].value.Substring(1,2));
  41.             $b=$m.groups[4].value.Substring(0,1)+(exc $m.groups[4].value.Substring(1,2));
  42.             if($flag[0] -eq 1){
  43.                 $ts=$m.groups[1].value+'000'+$m.groups[3].value+$b;
  44.             }else{
  45.                 $ts=$m.groups[1].value+$flag[1]+$m.groups[3].value+$b;
  46.             }
  47.             $flag[1]=$b;$flag[0]++;
  48.             [void]$arr.add($ts);
  49.         }else{
  50.            [void]$arr.add($text[$j]);
  51.         }
  52.     }
  53.     [IO.File]::WriteAllLines($files[$i], ($arr -join "`r`n"), $enc);
  54. }
复制代码
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

返回列表