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

报酬有点少
  1. <# :
  2. cls&echo off&cd /d "%~dp0"&rem 编码ANSI
  3. powershell -NoProfile -ExecutionPolicy bypass "[IO.File]::ReadAllText(\"%~f0\",[Text.Encoding]::GetEncoding('GB2312'))|Invoke-Expression"
  4. pause
  5. exit
  6. #>
  7. $xmlfolder=".\文档";
  8. if(-not (test-path -literal $xmlfolder)){write-host ('"'+$xmlfolder+'" 未找到');exit;}
  9. $enc=New-Object System.Text.UTF8Encoding $False;
  10. $files=@(dir -literal $xmlfolder -recurse|?{('.xml' -eq $_.Extension) -and ($_ -is [System.IO.FileInfo])});
  11. for($i=0;$i -lt $files.length;$i++){
  12.     write-host $files[$i].FullName
  13.     $text=[IO.File]::ReadAllText($files[$i].FullName, $enc);
  14.     $m1=[regex]::matches($text, '\b(x|y|w|h|expression)="([^"]+?)"','IgnoreCase');
  15.     foreach($it in $m1){
  16.         $oldword=$it.groups[0].value;
  17.         $ov=$it.groups[2].value;
  18.         $nv=[regex]::replace($ov, '(?<=^|,| )[-+]?\d+(?:[-+]\d+){1,}', {
  19.             param($z);
  20.             $s=Invoke-Expression $z.groups[0].value;
  21.             return $s;
  22.         })
  23.         $nv=[regex]::replace($nv, '(?<=[^\d+-])(?:[-+]\d+){2,}|(?<=#\d+)(?:[-+]\d+){2,}', {
  24.             param($z);
  25.             $s=Invoke-Expression $z.groups[0].value;
  26.             if($s -match '^-'){return $s;}else{return ('+'+$s.toString());}
  27.         })
  28.         $newword=$oldword.replace($ov, $nv);
  29.         $text=$text.replace($oldword, $newword);
  30.     }
  31.     [IO.File]::WriteAllText($files[$i].FullName, $text, $enc);
  32. }
复制代码
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

回复 5# linfeng_321


   不清楚你的实际文件,看你给出的例子引号有缺失
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

回复 8# linfeng_321


    已修改
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

返回列表