File 编辑.ini的批处理文件

File 编辑.ini的批处理文件,file,batch-file,edit,ini,File,Batch File,Edit,Ini,我有一个程序,.ini文件中的设置似乎会不断恢复。我发现自己一直在检查文件,看它是否需要编辑,所以我想看看我是否能拿出一个批处理文件来完成这项工作。其思想是创建此批处理文件,每2分钟扫描一次.ini文件,以检查特定行的值,并在必要时更改该值。电话是: UpdateSpeedCore=8 8是检查所需的数字,但有时会恢复为100 文件名为prolasso.ini,路径为C:\Documents and Settings\Administrator\Application Data\ProcessL

我有一个程序,.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”中的设置名称

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


编辑:解决了每次跑步时增加空间的问题(注意,
echo%%K=%%L后没有空间)。这还可以解决大约一千次运行的问题(可能是因为行长太大)

这需要
UpdateSpeedCheck=8
本身在一行上,没有空格

它使用一个名为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
应可在所有平台上工作,并可用于以健壮且简单的方式读取和更新ini文件

crudini --set prolasso.ini '' UpdateSpeedCore 8
将其放入循环:

:loop
crudini --set prolasso.ini '' UpdateSpeedCore 8
ping localhost -n 121 > nul
goto loop
在Windows上,可以使用批处理脚本操作.ini文件的内容。文件操作是幂等的

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

更简单的解决方案:复制一份好的ini文件,每2分钟覆盖一次现有的ini?也许他想保留其他更改。Kayasax,这是个好主意,但我确实有时会更改其他设置。很好,但在大约8000次呼叫后失败,因为它每次在每行追加一个空格。它还将删除以
开头的行,但我想不应该有这样的线路。我会试试这个文件。对不起,斯蒂芬。我从包含.ini的文件夹中手动运行该文件,但它删除了.ini中的所有数据,第二行上的等号除外。当然,没有什么损失,但没有运气。我对配料知之甚少,所以我可能犯了一个错误,尽管我确实试图严格遵守您的指示。我在上面的.ini文件中添加了一些信息,如果有帮助的话……还有其他想法吗?谢谢这听起来像是空变量。注意:那些“for”-变量
%%x
区分大小写<代码>%%K
不等于
%%K%
!请检查脚本中的%%K adn%%L。foxidrive…感谢您的脚本和REPL.bat。我将尝试学习如何使用REPL.bat。三个问题。1.bat在手动执行时可以工作,但它似乎没有在ping上运行。我试着用典型的帐户结构来操作PC-MS时迷失了方向,所以我完全忽略了它,我无法为.bat创建时间表。2.手动运行脚本时,命令提示窗口保持打开状态。有没有办法在脚本中关闭CP?3.ini大小从9kb减小到5 KB。将修改后的.ini文件与原始文件进行比较,结果是相同的。有什么问题吗?foxidrive…如果可能的话,我希望在不打开命令提示符窗口的情况下运行它。也许这是另一个问题…所有问题都解决了…找到了一个调度程序,它将每2分钟作为隐藏进程运行一次批处理。非常感谢你。调度器程序是Splinterware制作的免费系统调度器。我刚回来,但很高兴你们有一个解决方案。您可以将
ping
行替换为
timeout 120
,任务计划程序
中有一个选项“与桌面交互”
或类似选项,您可以取消选中该选项,但我尚未测试该功能。您的文件可能是Unicode,并已转换为Ansi,这将解释文件大小的减少。如果它仍然工作,那么它是好的。请记住,它将更新所有部分中的键。当相同的钥匙在不同的部分时,我遇到了问题。
inifile.exe "C:\Documents and Settings\Administrator\Application Data\ProcessLasso\config\prolasso.ini" UpdateSpeedCore=8