本帖最后由 WHY 于 2019-5-21 09:39 编辑
test.ps1- $str = [IO.File]::ReadAllText('a.txt', [Text.Encoding]::Default);
- $str = $str -replace '(?m)^\s+|\s*(?:\n|$)' -replace '<!--(?:(?!-->).)*-->';
- $str = [regex]::Replace($str, '(?<=<[^<>\s]+)\s+[^<>]+"(?=\s*/?>)', {param($m); [Collections.ArrayList]$a=$m.Value -split '(?<=="[^"]*")';$a.Reverse();$a -join ''});
- [IO.File]::WriteAllText('b.txt', $str, [Text.Encoding]::UTF8);
复制代码 如果要保存为Test.BAT
(1) 对ps脚本块而言,双引号用反斜杠转义;
(2) 对bat脚本而言,暴露在 "双引号对" 之外的特殊字符用^转义。- @echo off
- PowerShell "$s = [IO.File]::ReadAllText('a.txt', [Text.Encoding]::Default) -replace '(?m)^\s+|\s*(?:\n|$)' -replace '<!--(?:(?!-->).)*-->';$s = [regex]::Replace($s, '(?<=<[^<>\s]+)\s+[^<>]+\"(?=\s*/?^>)',{param($m);[Collections.ArrayList]$a=$m.Value -split '(?^<==\"[^\"]*\")';$a.Reverse();$a -join ''});sc b.txt -Value $s -Enc UTF8"
- pause
复制代码
|