如何用BAT批处理定时更改指定ini文件内的指定内容?

每5分钟自动检查D:\tool\config\config.ini
检查port=8814
将8814改成8815
然后
下一次就是8815改成8816
无限循环。

不清楚你的实际文件/情况,仅以问题中的样例/说明为据
复制粘贴到记事本,另存为xx.bat,编码选ANSI/*&cls
@echo off
rem 每间隔一定时间将一个指定的ini文件里的指定节下的指定键的数值递增1
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
set "inifile=D:\tool\config\config.ini"
set sleep=300
:loop
type "%inifile%"|cscript -nologo -e:jscript "%~f0">"%tmp%\t.t"
move /y "%tmp%\t.t" "%inifile%"
if exist "%windir%\System32\timeout.exe" (
    timeout /t %sleep% /nobreak
) else (
    set /a t=sleep+1
    >nul call ping /n %%t%% 0

goto loop
*/
var text=WSH.StdIn.ReadAll().replace(
    /(\[websocket\]\s+?port=)(\d+)/i,
    function(a,b,c){
        var d=(Number(c)+1).toString();
        WSH.StdErr.WriteLine(c+' --> '+d);
        return b+d;
    }
);
WSH.echo(text);

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-04-02
@echo off&setlocal enabledelayedexpansionattrib -s -h 配置文件.inifor /f "delims=" %%a in (配置文件.ini) do ( set str=%%a set str=!str:ABCDEF=GHIJKL!&echo !str!>>1.ini)move 1.ini 配置文件.ini

请在c盘根目录下运行!