[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
来一段啰嗦的、效果低的:
内容会添加到段的末尾
  1. @echo off
  2. SetLocal EnableDelayedExpansion
  3. echo 请稍等...
  4. rem =============== 设置 ===============
  5. rem 设置文件名
  6. set "INF_File=INTL.INF"
  7. rem 设置要删除的行
  8. set "Delete_Line=simsun.ttc,,,65536"
  9. rem 设置哪一段下面要添加内容
  10. set Section=[SourceDisksFiles]
  11.     rem --------- 段下面要添加的内容 ---------
  12.     rem 必须用双引号括起来
  13.     for %%a in (
  14.         "Sun86.IME    = 107,,,,,,,0,0"
  15.         "Sun86.mb     = 107,,,,,,,0,0"
  16.         "Sun86.chm    = 107,,,,,,,0,0"
  17.     ) do set Append_Lines=!Append_Lines! %%a
  18.     rem --------- /段下面要添加的内容 ---------
  19. rem --------- 替换字符串 ---------
  20. rem 必须用双引号括起来
  21. for %%a in (
  22.     "E00E0804=E0860804"
  23.     "pintlgnt.ime=sun86.ime"
  24. ) do set Old-New=!Old-New! %%a
  25. rem --------- /替换字符串 ---------
  26. rem 删除含有某字符串的行
  27. set "ContainStr=pintlgnt"
  28. rem =============== /设置 ===============
  29. type "%INF_File%" | findstr /nivc:"%Delete_Line%" >.findstr
  30. rem 去除 INF_File 文件的“只读”属性
  31. attrib -r "%INF_File%"
  32. (for /f "tokens=*" %%a in (.findstr) do (
  33.     set var=%%a
  34.     for %%a in (%Old-New%) do set var=!var:%%~a!
  35.     if "!var:%ContainStr%=!" equ "!var!" (
  36.         if defined Monitor_Section_End (
  37.             set var2=!var: =!
  38.             set var2=!var:*:=!
  39.             if "!var2:~0,1!!var2:~-1!"=="[]" (
  40.                 for %%a in (%Append_Lines% !Above_Lines! "!var:*:=!") do (
  41.                     echo,%%~a
  42.                 )
  43.                 set Monitor_Section_End=
  44.                 set Above_Lines=
  45.                 set Append_Finish=#
  46.             ) else if "!var2!"=="" (
  47.                 set Above_Lines=!Above_Lines! "!var:*:=!"
  48.             ) else if "!var2:~0,1!"==";" (
  49.                 set Above_Lines=!Above_Lines! "!var:*:=!"
  50.             ) else (
  51.                 for %%a in (!Above_Lines! "!var:*:=!") do echo,%%~a
  52.                 set Above_Lines=
  53.             )
  54.         ) else (
  55.             if "!var:*:=!"=="%Section%" (
  56.                 if not defined Append_Finish set Monitor_Section_End=#
  57.             )
  58.             echo,!var:*:=!
  59.         )
  60.     )
  61. )) >"%INF_File%"
  62. del .findstr
  63. rem 为了防止要添加内容的段为最后一段。
  64. if defined Monitor_Section_End (
  65.     for %%a in (%Append_Lines% %Above_Lines%) do echo,%%~a
  66. ) >>"%INF_File%"
复制代码

[ 本帖最后由 tmplinshi 于 2011-1-10 22:29 编辑 ]
2

评分人数

TOP

返回列表