[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 WHY 于 2022-10-15 22:41 编辑
  1. param([string]$file); #修改前的文件
  2. $file2 = ".\1.txt"; #修改后的文件
  3. $Hash1 = @{ '5' = '4G'; '6' = '6G'; '7' = '8G'; '8' = '8G' }
  4. $Hash2 = @{ '5' = '4G'; '6' = '6G'; '7' = '8G'; '8' = '16G'; '9' = '24G' }
  5. $Block1 = {
  6.     param($m);
  7.     $m0 = $m.Groups[0].Value;
  8.     $m1 = $m.Groups[1].Value;
  9.     if( $m0 -match '\d+GB?' ){
  10.         return $m0 -replace '(\d+G)B', '$1';
  11.     } else {
  12.         return $m0 + ' ' + $Hash1[$m1];
  13.     }
  14. }
  15. $Block2 = {
  16.     param($m);
  17.     $m0 = $m.Groups[0].Value;
  18.     $m1 = $m.Groups[1].Value;
  19.     if( $m0 -match '\d+GB?' ){
  20.         return $m0 -replace '(\d+G)B', '$1';
  21.     } else {
  22.         return $m0 + ' ' + $Hash2[$m1];
  23.     }
  24. }
  25. $UTF8NoBom = New-Object System.Text.UTF8Encoding $false;
  26. $str = [IO.File]::ReadAllText($file, [Text.Encoding]::UTF8);
  27. $str = [regex]::Replace( $str, '\b[12]0([5-8])0[^[\]]*(?=])', $Block1 );
  28. $str = [regex]::Replace( $str, '\b[34]0([5-9])0[^[\]]*(?=])', $Block2 );
  29. #$str = $str -replace '\r\n', "`n";
  30. [IO.File]::WriteAllText($file2, $str, $UTF8NoBom);
  31. echo 'Done';
  32. [Console]::ReadLine();
复制代码

TOP

回复 3# smss


    已修改

TOP

回复 6# smss
  1. $Block2 = {
  2.     param($m);
  3.     $m0 = $m.Groups[0].Value;
  4.     $m1 = $m.Groups[1].Value;
  5.     If( $m0 -match '\d+GB?'){
  6.         return $m0 -replace '(\d+G)B', '$1';
  7.     } elseIf ($m0 -match '\b4090 Laptop GPU'){
  8.         return $m0 + ' 16G';
  9.     } else {
  10.         return $m0 + ' ' + $Hash2[$m1];
  11.     }
  12. }
复制代码
1

评分人数

    • smss: 还有其它不同,明天有空再弄技术 + 1

TOP

本帖最后由 WHY 于 2023-3-6 08:48 编辑

回复 6# smss
这样试下
修改正则模式;增加 1070 Ti,我测试没有问题
  1. $file1 = 'pci.ids';        #修改前的文件
  2. $file2 = '1.txt';          #修改后的文件
  3. #桌面系列
  4. $Hash1  = @{
  5.     '1050' = '2G';        #10
  6.     '1050 Ti' = '4G';
  7.     '1060' = '6G';
  8.     '1070' = '8G';
  9.     '1070 Ti' = '8G';
  10.     '1080' = '8G';
  11.     '1080 Ti' = '8G';
  12.     '1650' = '4G';        #16
  13.     '1630' = '4G';
  14.     '1660' = '6G';
  15.     '2050' = '4G';        #20
  16.     '2060' = '6G';
  17.     '2060 SUPER' = '8G';
  18.     '2070' = '8G';
  19.     '2070 SUPER' = '8G';
  20.     '2080' = '8G';
  21.     '2080 SUPER' = '8G';
  22.     '2080 Ti' = '11G';
  23.     '3050' = '8G';        #30
  24.     '3050 Ti' = '6G';
  25.     '3060' = '12G';
  26.     '3060 Ti' = '8G';
  27.     '3070' = '8G';
  28.     '3070 Ti' = '8G';
  29.     '3080' = '12G / 10G';
  30.     '3080 Ti' = '12G';
  31.     '3090' = '24G';
  32.     '3090 Ti' = '24G';
  33.     '4050' = '6G';        #40
  34.     '4060' = '8G';
  35.     '4060 Ti' = '8G';
  36.     '4070' = '12G';
  37.     '4070 Ti' = '12G';
  38.     '4080' = '16G';
  39.     '4090' = '24G'
  40. }
  41. #移动系列
  42. $Hash2  = @{
  43.     '1050' = '2G';        #10
  44.     '1050 Ti' = '4G';
  45.     '1060' = '6G';
  46.     '1070' = '8G';
  47.     '1070 Ti' = '8G';
  48.     '1080' = '8G';
  49.     '1080 Ti' = '8G';
  50.     '1650' = '4G';        #16
  51.     '1660' = '6G';
  52.     '2050' = '4G';        #20
  53.     '2060' = '6G';
  54.     '2060 SUPER' = '8G';
  55.     '2070' = '8G';
  56.     '2070 SUPER' = '8G';
  57.     '2080' = '8G';
  58.     '2080 SUPER' = '8G';
  59.     '3050' = '4G';        #30
  60.     '3050 Ti' = '4G';
  61.     '3060' = '6G';
  62.     '3070' = '8G';
  63.     '3070 Ti' = '8G';
  64.     '3080' = '8G / 16G';
  65.     '3080 Ti' = '16G';
  66.     '4050' = '6G';        #40
  67.     '4060' = '8G';
  68.     '4070' = '8G';
  69.     '4080' = '12G';
  70.     '4090' = '16G'
  71. }
  72. $Block = {
  73.     param($m);
  74.     $m0 = $m.Groups[0].Value;
  75.     $m1 = $m.Groups[1].Value;
  76.     if( $m0 -match '\b[0-9]+GB?' ){
  77.         return $m0 -replace '\b([0-9]+G)B', '$1';
  78.     } elseIf( $m0 -match '(?-i:Mobile|Laptop)' ){
  79.         return $m0 + ' ' + $Hash2[$m1];
  80.     } else {
  81.         return $m0 + ' ' + $Hash1[$m1];
  82.     }
  83. }
  84. $UTF8NoBom = New-Object System.Text.UTF8Encoding $false;
  85. $str = [IO.File]::ReadAllText($file1, [Text.Encoding]::UTF8);
  86. $str = [regex]::Replace( $str, '(?<=[GR]TX )([1-4]0[5-9]0(?: Ti| SUPER)?|16[356]0)\b[^[\]]*(?=])', $Block );
  87. $str = $str -replace '(?<!\r)\n', "`r`n";
  88. [IO.File]::WriteAllText($file2, $str, $UTF8NoBom);
复制代码

TOP

返回列表