[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
回复 4# codegay


    冒号是 findstr 生成的,跟 ini 文件没啥关系吧。

TOP

本帖最后由 codegay 于 2017-3-22 08:36 编辑

回复 1# yym黄诗瑶


    你们的打包安装程序用的是什么工具?Inno ?还是NSIS?
这类工具是集成了对INI文件的读写的功能的。如果是安装过程中进行处理,完全可以交给安装程序来处理。
INNO的文档如下:
  1. [INI]
  2. Filename: "MyProg.ini"; Section: "InstallSettings"; Flags: uninsdeletesection
  3. Filename: "MyProg.ini"; Section: "InstallSettings"; Key: "InstallPath"; String: "{app}"
复制代码
少部分系统目录不是c:\windows , 用系统变量systemroot可能是比较靠谱,可以规避掉这种可能是的意外。
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

本帖最后由 codegay 于 2017-3-22 01:49 编辑

回复 3# ShowCode


    INI文件的格式是:
  1. [节点]
  2. 选项=xxx
复制代码
用等号定位比较靠谱。冒号不是必然会出现的。
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

回复 2# ygqiang


这样比较简洁
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. (for /f "tokens=1* delims=:" %%h in ('findstr /n "." "1.ini"') do (
  4.     set "str=%%i"
  5.     if "!str:SourcePath=!" neq "%%i" (
  6.         echo SourcePath=C:\Windows
  7.     ) else if "!str:NeedUpdatePath=!" neq "%%i" (
  8.         echo NeedUpdatePath=C:\Windows
  9.     ) else (
  10.         echo,%%i
  11.     )
  12. ))>"2.ini"
复制代码

TOP

回复 1# yym黄诗瑶
  1. @echo off
  2. set rip=c:\windows
  3. set tihuan1=SourcePath=
  4. set tihuan2=NeedUpdatePath=
  5. echo %tihuan1%
  6. echo %tihuan2%
  7. pause
  8. del /f /q new.ini
  9. findstr /n .* 1.ini>temp.ini
  10. for /f "tokens=1* delims=:" %%a in ('findstr /b /n %tihuan1% 1.ini') do (
  11. set /a tn=%%a
  12. for /f "tokens=2 delims==" %%c in ("%%b") do set tip=%%c
  13. )
  14. setlocal enabledelayedexpansion
  15. for /f "tokens=1* delims=:" %%i in (temp.ini) do (
  16. set /a ln=%%i
  17. set line=%%j
  18. if !ln! equ !tn! (
  19. echo;!line:%tip%=%rip%!
  20. ) else (
  21. echo;!line!
  22. )
  23. )>>new.ini
  24. 1pause
  25. del /q 1.ini
  26. ren new.ini 1.ini
  27. 1pause
  28. del /f /q temp.ini
  29. findstr /n .* 1.ini>temp.ini
  30. for /f "tokens=1* delims=:" %%a in ('findstr /b /n %tihuan2% 1.ini') do (
  31. set /a tn=%%a
  32. for /f "tokens=2 delims==" %%c in ("%%b") do set tip=%%c
  33. )
  34. setlocal enabledelayedexpansion
  35. for /f "tokens=1* delims=:" %%i in (temp.ini) do (
  36. set /a ln=%%i
  37. set line=%%j
  38. if !ln! equ !tn! (
  39. echo;!line:%tip%=%rip%!
  40. ) else (
  41. echo;!line!
  42. )
  43. )>>new.ini
  44. 1pause
  45. del /q 1.ini
  46. ren new.ini 1.ini
  47. 1pause
  48. del /f /q temp.ini
  49. 1pause
  50. exit
复制代码

TOP

返回列表