编辑INI以使用批处理替换字符串

时间:2017-12-18 17:49:52

标签: batch-file

我需要编辑一个ini文件,用一个新的目标文件夹替换里面的一行。

我需要它去一条新路。我尝试了一些类似的搜索但却无法让它独立完成。这是我尝试过的,没有发生任何事情:

@echo off
set "file=C:\Users\Test\AppData\Roaming\OBS\profiles\Test.ini"
if exist "%file% (
   findstr /v /i "SavePath=" "%file%" >"%file%.tmp"
   >>"%file%.tmp" echo/SavePath=C:\test\backup\backup.flv
   move /y "%file%.tmp" "%file%" >nul
)

1 个答案:

答案 0 :(得分:0)

这是我每天用于某些模板的批处理文件的一个exerpt。它将使用文件顶部定义的新search字符串替换指定的replace字符串:

@echo off &setlocal
set "search=c:\old\path"
set "replace=d:\new\path"
set "textfile=test.ini"
set "newfile=output.ini"
echo Scanning %textfile%

(for /f "delims=" %%i in ('findstr "." "%textfile%"') do (
    set "line=%%i"
    setlocal enabledelayedexpansion
    set "line=!line:%search%=%replace%!"
    echo(!line!
    endlocal
))>"%newfile%"

看起来您已经在处理if exist并覆盖原始文件,所以我没有包含这些内容。

希望它有所帮助!