我有一个程序,.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”。
答案 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