本帖最后由 WHY 于 2022-10-15 22:41 编辑
- param([string]$file); #修改前的文件
- $file2 = ".\1.txt"; #修改后的文件
-
- $Hash1 = @{ '5' = '4G'; '6' = '6G'; '7' = '8G'; '8' = '8G' }
- $Hash2 = @{ '5' = '4G'; '6' = '6G'; '7' = '8G'; '8' = '16G'; '9' = '24G' }
- $Block1 = {
- param($m);
- $m0 = $m.Groups[0].Value;
- $m1 = $m.Groups[1].Value;
- if( $m0 -match '\d+GB?' ){
- return $m0 -replace '(\d+G)B', '$1';
- } else {
- return $m0 + ' ' + $Hash1[$m1];
- }
- }
-
- $Block2 = {
- param($m);
- $m0 = $m.Groups[0].Value;
- $m1 = $m.Groups[1].Value;
- if( $m0 -match '\d+GB?' ){
- return $m0 -replace '(\d+G)B', '$1';
- } else {
- return $m0 + ' ' + $Hash2[$m1];
- }
- }
-
- $UTF8NoBom = New-Object System.Text.UTF8Encoding $false;
- $str = [IO.File]::ReadAllText($file, [Text.Encoding]::UTF8);
- $str = [regex]::Replace( $str, '\b[12]0([5-8])0[^[\]]*(?=])', $Block1 );
- $str = [regex]::Replace( $str, '\b[34]0([5-9])0[^[\]]*(?=])', $Block2 );
- #$str = $str -replace '\r\n', "`n";
- [IO.File]::WriteAllText($file2, $str, $UTF8NoBom);
-
- echo 'Done';
- [Console]::ReadLine();
复制代码
|