关于修改文本内容的问题
本帖最后由 a000000 于 2009-6-26 12:59 编辑例如我有一个ini文件里面的内容是:
[配置]
墙纸路径=.\墙纸
墙纸文件=
机器名前缀=ZYJT-
机器名位数=3
机器名后缀=
机器名颜色=15
日期颜色=15
同步时间=
显示机器名=是
显示费率=是
显示天气=
我现在想只修改显示天气= 这行,因为老贼的采集不管用了,自己又不会写采集码,所以打算曲线整合下将就用,希望高手帮忙
我用了这样:
$file = FileOpen("WBWallPaper.bak", 1)
; 检查文件是否正常打开
If $file = -1 Then
MsgBox(0, "错误", "无法打开目标文件。")
Exit
EndIf
FileWrite($file, "[配置]" & @CRLF)
FileWrite($file, "墙纸路径=.\墙纸 " & @CRLF)
FileWrite($file, "墙纸文件=" & @CRLF)
FileWrite($file, "机器名前缀=ZYJT- " & @CRLF)
FileWrite($file, "机器名位数=3" & @CRLF)
FileWrite($file, "机器名后缀= " & @CRLF)
FileWrite($file, "机器名颜色=15 " & @CRLF)
FileWrite($file, "日期颜色=15" & @CRLF)
FileWrite($file, "同步时间=" & @CRLF)
FileWrite($file, "显示机器名=是" & @CRLF)
FileWrite($file, "显示费率=是 " & @CRLF)
FileWrite($file, "显示天气= " & @CRLF)
FileClose($file)
我想用au3只修改第12行,也就是:“显示天气= ”是否可以的呢?
ps:请高手指点下用啥命令 ,找了半天帮助,没找到,论坛里的帖子也找了,实在没弄明白,谢谢啦 寂寞高手一时俱无踪 _ReplaceStringInFile 或者_FileWriteToLine 行不行?? 本帖最后由 a000000 于 2009-6-26 12:41 编辑
还是没搞定,要求是只修改“显示天气= ”,因为别的行数据都是变量 其实他的原始文件是这样的:
[配置]
墙纸路径=.\墙纸
墙纸文件=
机器名前缀=ZYJT-
机器名位数=3
机器名后缀=
机器名颜色=15
日期颜色=15
同步时间=
显示机器名=是
显示费率=是
显示天气=
我现在想只修改显示天气= 这行,因为老贼的采集不管用了,自己又不会写采集码,所以打算曲线整合下将就用,希望高手帮忙 用批处理写了个,可是弄了半天最后宣告失败:
@echo off
del WBWallPaper.ini
@echo off & SetLocal EnableDelayedExpansion
for /f "tokens=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26" %%a in (原始WBWallPaper.ini) do (
set /a flag+=1
if !flag! equ 12 (>>WBWallPaper.ini echo 显示天气=) else (>>WBWallPaper.ini echo %%a%%b %%c %%d %%e %%f %%g %%h %%i %%j %%k %%l %%m %%n %%o %%p %%q %%r %%s %%t %%u %%v %%w %%x %%y %%z)
)
START /min /wait WEATHER.EXE
type WBWallPaper.ini>WBWallPaper.bak
del WBWallPaper.ini
@echo off & SetLocal EnableDelayedExpansion
for /f "tokens=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26" %%a in (.\WBWallPaper.bak) do (
set /a flag+=1
if !flag! equ 12 (>>.\WBWallPaper.ini echo 显示天气=是) else (>>.\WBWallPaper.ini echo %%a%%b %%c %%d %%e %%f %%g %%h %%i %%j %%k %%l %%m %%n %%o %%p %%q %%r %%s %%t %%u %%v %%w %%x %%y %%z)
)
START /min WEATHER.js
del WBWallPaper.bak 不 知道为啥:
走到这个地方就不执行了:
@echo off & SetLocal EnableDelayedExpansion
for /f "tokens=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26" %%a in (.\WBWallPaper.bak) do (
set /a flag+=1
if !flag! equ 12 (>>.\WBWallPaper.ini echo 显示天气=是) else (>>.\WBWallPaper.ini echo %%a%%b %%c %%d %%e %%f %%g %%h %%i %%j %%k %%l %%m %%n %%o %%p %%q %%r %%s %%t %%u %%v %%w %%x %%y %%z)
) 你可以读取行,对整行进行修改即可,不难! 高手帮下忙 在线等待........... 用这个试试 IniWrite ( "文件名", "字段名", "键名", "值" )
IniWrite ( "test.ini", "配置", "显示天气", "修改的值" ) 谢谢楼上,代码很好用
页:
[1]