Board logo

标题: [文本处理] 将文本内容符合条件的某一行修改值的批处理 [打印本页]

作者: wmysbbs    时间: 2009-7-27 07:58     标题: 将文本内容符合条件的某一行修改值的批处理

有文本aaa.ini,内容如下

==============================================aaa.ini

[Log]
# 想要哪些日志,就在后面填写 True.
#
FileSystem=False
Account=False
UserID=False
[steamclient]
# 设置名字.
#
PlayerName="旧游戏名"
# 启用/禁用 steamclient.dll 生成记录文件.
#
# Default = False
#
Logging=False
# 更改以下设置,为服务器浏览器使用不同的主服务器!
#
#MasterServer=213.239.209.221

==============================================aaa.ini

现在想修改PlayerName里面的值 旧游戏名 改为 新游戏名,双引号为ini文件自带

我已经写到了显示那一步,但怎么修改就写不下去了,在此请教:
我写的bat文件如下:

  1. @echo off
  2. set "push=aaa.ini"
  3. set/p NewName= 请输入游戏名:
  4. for /f "eol=[ delims== tokens=1,*" %%a in (%push%) do (
  5. if "%%a"=="PlayerName" (
  6. set GN=%%a
  7. set Name=%%b
  8. )
  9. )
  10. echo %GN%=%Name%
  11. echo %GN%="%NewName%"
  12. pause
复制代码

作者: Lumiere    时间: 2009-7-27 09:57

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in (aaa.ini) do set str=%%a&echo !str:旧=新!>>aaaa.ini
  3. del aaa.ini&ren aaaa.ini aaa.ini
  4. pause>nul
复制代码

作者: tireless    时间: 2009-7-27 15:43

  1. @echo off
  2. set push="aaa.ini"
  3. set /p NewName= 请输入游戏名:
  4. set clear=.
  5. for /f "usebackq delims== tokens=1,*" %%a in (%push%) do (
  6.   if defined clear set clear=>%push%
  7.   (
  8.       if "%%a"=="PlayerName" (
  9.         echo %%a="%NewName%"
  10.       ) else (
  11.         if "%%b"=="" (echo;%%a) else echo %%a=%%b
  12.       )
  13.   ) >> %push%
  14. )
复制代码

作者: wmysbbs    时间: 2009-7-27 18:44

三楼的代码可以用,但是遇到中文名就不行了,怎么决解呢

顺便说一句,PlayerName="旧游戏名"  这里的双引号可要可不要

[ 本帖最后由 wmysbbs 于 2009-7-27 18:52 编辑 ]
作者: tireless    时间: 2009-7-27 18:54     标题: 回复 4楼 的帖子

说详细一点。另,你是否对3楼代码进行了修改?

[ 本帖最后由 tireless 于 2009-7-27 18:57 编辑 ]
作者: wmysbbs    时间: 2009-7-28 14:39

原帖由 tireless 于 2009-7-27 18:54 发表
说详细一点。另,你是否对3楼代码进行了修改?




就在是输入新游戏名后,aaa.ini文件里面的游戏名显示是乱码

并非全部是乱码

三楼的代码我只修改了aaa.ini文件名,别的都没更改
作者: wmysbbs    时间: 2009-7-28 14:45

汗,刚刚又测试了下,应该是我系统的问题,在XPsp3下没事,sp2下乱码




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