用于编辑.ini的批处理文件

时间:2013-09-18 12:08:12

标签: file batch-file edit ini

我有一个程序,.ini文件中的设置似乎不断恢复。我发现自己经常检查文件是否需要编辑,所以我想看看我是否可以提出一个可以完成这项工作的批处理文件。我们的想法是创建此批处理文件,每2分钟扫描一次.ini文件,以检查特定行的值,并在必要时更改该值。该行是:

UpdateSpeedCore = 8

8是检查所需的数字,但有时会恢复为100。

该文件的名称为prolasso.ini,路径为C:\ Documents and Settings \ Administrator \ Application Data \ ProcessLasso \ config \ prolasso.ini。

感谢任何能帮助解决这一烦恼的人......

编辑:有关.ini文件的更多信息。没有空行。但是,有些行被设置为“=”而没有像“Power =”那样的值。文件中可能有六个部分描述符,如“[Debug]”或“[AdvancedRules]”。这些不等于值。它是一条静态长度的线条,长约100行。除了部分描述符之外,所有行都使用“=”符号后跟一个值。它们之前是设置名称,如“UpdateSpeedCore”。

4 个答案:

答案 0 :(得分:3)

这要求UpdateSpeedCheck=8本身在一条线上,没有空格。

它使用来自 - http://www.dostips.com/forum/viewtopic.php?f=3&t=3855的名为repl.bat的帮助程序批处理文件,您可以将其放在同一个文件夹中。

@echo off
set "file=C:\Documents and Settings\Administrator\Application Data\ProcessLasso\config\prolasso.ini"

:loop
findstr "^UpdateSpeedCheck=8$" "%file%" >nul || (
type "%file%"|repl "^UpdateSpeedCheck=.*" "UpdateSpeedCheck=8" >"%file%.tmp"
move "%file%.tmp" "%file%" >nul
)
ping -n 120 localhost >nul
goto :loop

答案 1 :(得分:2)

在Windows上,您可以使用IniFile从批处理脚本中操作.ini文件的内容。 IniFile操作是幂等的。

inifile.exe "C:\Documents and Settings\Administrator\Application Data\ProcessLasso\config\prolasso.ini" UpdateSpeedCore=8

答案 2 :(得分:1)

@echo off
echo. >prolasso.new
FOR /F "delims=\= tokens=1,2" %%K IN (prolasso.ini) DO (
    IF "%%K" NEQ "UpdateSpeedCheck" (
        >>prolasso.new echo %%K=%%L
    ) else (
        >>prolasso.new echo %%K=8
    )
)
del prolasso.ini
ren prolasso.new prolasso.ini

注意:此解决方案将删除空行。

编辑:解决了每次运行时额外空间的问题(请注意,echo %%K=%%L后没有空格)。这也应解决了几千次运行的问题(可能是因为线路长度很大)

答案 3 :(得分:1)

http://www.pixelbeat.org/programs/crudini应该可以在所有平台上运行,并且可以用来以健壮而简单的方式读取和更新ini文件。

crudini --set prolasso.ini '' UpdateSpeedCore 8

把它放在一个循环中:

:loop
crudini --set prolasso.ini '' UpdateSpeedCore 8
ping localhost -n 121 > nul
goto loop