[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
  1. <#*,:&cls
  2. @echo off
  3. cd /d "%~dp0"
  4. powershell -C "Set-Location -LiteralPath ([Environment]::CurrentDirectory);. ([ScriptBlock]::Create((Get-Content -LiteralPath \"%~f0\" -ReadCount 0 | Out-String)))"
  5. pause
  6. exit /b
  7. #>
  8. $mapTable = @(
  9.   @("move-l_format.c", "m_reg_tab", "amp_move.h", "m_reg_tab_move_l"),
  10.   @("move-r_format.c", "m_reg_tab", "amp_move.h", "m_reg_tab_move_r"),
  11.   @("move-c_format.c", "m_reg_tab", "amp_move.h", "m_reg_tab_move_cen"),
  12.   @("music-l_format.c", "m_reg_tab", "amp_music.h", "m_reg_tab_music_l"),
  13.   @("music-r_format.c", "m_reg_tab", "amp_music.h", "m_reg_tab_music_r"),
  14.   @("music-c_format.c", "m_reg_tab", "amp_music.h", "m_reg_tab_music_cen"),
  15.   @("news-l_format.c", "m_reg_tab", "amp_news.h", "m_reg_tab_news_l"),
  16.   @("news-r_format.c", "m_reg_tab", "amp_news.h", "m_reg_tab_news_r"),
  17.   @("news-c_format.c", "m_reg_tab", "amp_news.h", "m_reg_tab_news_cen"),
  18.   
  19.   @("move-l_format.c", "m_ram1_tab", "amp_move.h", "eq_tables_ram1_left_move"),
  20.   @("move-r_format.c", "m_ram1_tab", "amp_move.h", "eq_tables_ram1_right_move"),
  21.   @("move-c_format.c", "m_ram1_tab", "amp_move.h", "eq_tables_ram1_cen_move"),
  22.   @("music-l_format.c", "m_ram1_tab", "amp_music.h", "eq_tables_ram1_left_music"),
  23.   @("music-r_format.c", "m_ram1_tab", "amp_music.h", "eq_tables_ram1_right_music"),
  24.   @("music-c_format.c", "m_ram1_tab", "amp_music.h", "eq_tables_ram1_cen_music"),
  25.   @("news-l_format.c", "m_ram1_tab", "amp_news.h", "eq_tables_ram1_left_news"),
  26.   @("news-r_format.c", "m_ram1_tab", "amp_news.h", "eq_tables_ram1_right_news"),
  27.   @("news-c_format.c", "m_ram1_tab", "amp_news.h", "eq_tables_ram1_cen_news")
  28. )
  29. $format = '(?si)(?<var>{0}\[\]\s*=\s*)(?<block>(?>/\*.*?\*/|//[^\n]*|(?<open>\{{)|(?<-open>\}})|.)+?(?(open)(?!)))'
  30. $encoding = New-Object System.Text.UTF8Encoding -ArgumentList $false
  31. $files = Get-ChildItem -Recurse | Where-Object { -not $_.PSIsContainer }
  32. foreach ($arr in $mapTable) {
  33.   $srcfile = $files | Where-Object { $_.Name -eq $arr[0] } | Select-Object -First 1
  34.   $dstfile = $files | Where-Object { $_.Name -eq $arr[2] } | Select-Object -First 1
  35.   if ($null -ne $srcfile -and $null -ne $dstfile) {
  36.     $resrc = [regex]($format -f $arr[1])
  37.     $redst = [regex]($format -f $arr[3])
  38.     $txtsrc = [System.IO.File]::ReadAllText($srcfile.FullName, $encoding)
  39.     $txtdst = [System.IO.File]::ReadAllText($dstfile.FullName, $encoding)
  40.     [System.IO.File]::WriteAllText($dstfile.FullName, $redst.Replace($txtdst, {
  41.           param([System.Text.RegularExpressions.Match]$mdst)
  42.           $msrc = $resrc.Match($txtsrc)
  43.           if ($msrc.Success) {
  44.             $mdst.Groups['var'].Value + $msrc.Groups['block'].Value
  45.           } else {
  46.             $mdst.Value
  47.           }
  48.         }), $encoding)
  49.   }
  50. }
复制代码
微信:flashercs
QQ:49908356

TOP

返回列表