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
Post a Comment