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

[文本处理] 将文本内容符合条件的某一行修改值的批处理

有文本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
复制代码

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

TOP

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




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

并非全部是乱码

三楼的代码我只修改了aaa.ini文件名,别的都没更改

TOP

回复 4楼 的帖子

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

[ 本帖最后由 tireless 于 2009-7-27 18:57 编辑 ]

TOP

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

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

[ 本帖最后由 wmysbbs 于 2009-7-27 18:52 编辑 ]

TOP

  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. )
复制代码

TOP

  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
复制代码
Still with wax

TOP

返回列表