Board logo

标题: [文本处理] 批处理如何实现选择菜单&ini文件字符串替换? [打印本页]

作者: eq0314    时间: 2015-6-8 21:59     标题: 批处理如何实现选择菜单&ini文件字符串替换?

某文件下内有3dmgame.ini和game.exe文件
3dmgame.ini文件中有数列字符内容如下(列数不定)
DLC001=123456
DLC002=565546
DLC003=544454
DLC004=544455
DLC005=420694
DLC006=420695
DLC007=420696
DLC008=655656

希望制作批处理文件game.bat实现如下操作
1、制作选择菜单 2、替换不定列字符串     3.启动文件
具体要求如下

选择菜单1.原创mod
把3dmgame.ini中上述内容替换为
DLC001=420690
DLC002=420691
DLC003=420692
DLC004=420693
DLC005=420694
DLC006=420695
DLC007=420696
然后启动game.exe

选择菜单2.新增mod
把3dmgame.ini中上述内容替换为
DLC001=420696
DLC002=352150
DLC003=358140
然后启动game.exe

选择菜单3.特别mod
把3dmgame.ini中上述内容替换为
DLC001=420647
然后启动game.exe

总之就是制作选择菜单把3dmgame.ini文件中不定列的特别内容换成指定的内容(列数依然不确定)然后启动game.exe文件
请大侠指导
作者: mqyphts    时间: 2015-6-9 11:22

本帖最后由 mqyphts 于 2015-6-9 23:02 编辑
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. ::file path 代表game.exe 路径
  4. set fp="filepath"
  5. set /p choose="你的选择?:1,2,3"
  6. echo.>tmp
  7. ::source.txt 代表原文件,1.txt,2.txt,3.txt代表要修改的选项
  8. if %choose%==1 (set secondfile=1.txt)
  9. if %choose%==2 (set secondfile=2.txt)
  10. if %choose%==3 (set secondfile=3.txt)
  11. (for /f "delims=" %%a in (source.txt) do (
  12. set str1=%%a
  13. set /p str2=
  14. set t1=!str1:~1,5!
  15. set t2=!str2:~1,5!
  16. if  !t1!==!t2!  ( echo !str2!>>tmp ) else ( echo !str1! >>tmp )
  17. ))<%secondfile%
  18. move /y tmp source.txt
  19. call %fp%
  20. pause
复制代码

作者: eq0314    时间: 2015-6-9 22:08

回复 2# mqyphts


    没出现选择菜单 直接启动game




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2