Is it possible to edit .Config file using a batch script -


here part of .config file have:

    <cs.components>           <clear/>           <cs.component name="security"/>             <cs.configitems>               <cs.configitem name="sql.server.name" value="some_name" type="string" description=""/>               <cs.configitem name="sql.server.database" value="db_name" type="string" description=""/>               <cs.configitem name="sql.user" value="user_name" type="string" description=""/>               <cs.configitem name="sql.pass" value="pass" type="string" description=""/>     </cs.components> 

so want edit file corresponding names* *some_name = server 1; db_name=a real database on server 1 , on... appreciate!

the batch file below preliminary version of program achieve want. names of input , output files hardcoded in program, can changed give them in parameters or automatically process files selected wild-card. program delete empty lines , fail if file contain exclamation marks, these limitations may fixed if needed.

@echo off setlocal enabledelayedexpansion  rem save replacement strings set i=0 :nextparam    if "%~1" equ "" goto endparams    set /a i+=1    set "replace[!i!]=%~1"    shift goto nextparam :endparams  rem process file (for /f "delims=" %%a in (input.txt) (    set "line=%%a"    /l %%i in (1,1,%i%) (       /f "delims=" %%r in ("!replace[%%i]!") (          set "line=!line:%%r!"       )    )    echo !line! )) > output.txt 

to use program, give replacement strings enclosed in quotes parameters. example:

replace.bat "some_name=server 1" "db_name=a real database on server 1" 

output:

<cs.components>           <clear/>           <cs.component name="security"/>             <cs.configitems>               <cs.configitem name="sql.server.name" value="server 1" type="string" description=""/>               <cs.configitem name="sql.server.database" value="a real database on server 1" type="string" description=""/>               <cs.configitem name="sql.user" value="user_name" type="string" description=""/>               <cs.configitem name="sql.pass" value="pass" type="string" description=""/>     </cs.components> 

Comments

Popular posts from this blog

linux - xterm copying to CLIPBOARD using copy-selection causes automatic updating of CLIPBOARD upon mouse selection -

c++ - qgraphicsview horizontal scrolling always has a vertical delta -