batch-file - 是否可以使用批处理脚本编辑.Config 文件

标签 batch-file web-config edit

这是我拥有的 .config 文件的一部分:

    <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>

所以基本上我想编辑具有相应名称的文件* *some_name = 服务器 1; DB_name=服务器 1 上的真实数据库等等... 任何帮助将不胜感激!

最佳答案

下面的批处理文件是实现您想要的程序的初步版本。输入和输出文件的名称在程序中进行硬编码,但可以更改为在参数中提供它们或自动处理通配符选择的所有文件。如果文件包含感叹号,程序会删除空行并失败,但如果需要,可以修复这些限制。

@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 the file
(for /F "delims=" %%a in (input.txt) do (
   set "line=%%a"
   for /L %%i in (1,1,%i%) do (
      for /F "delims=" %%r in ("!replace[%%i]!") do (
         set "line=!line:%%r!"
      )
   )
   echo !line!
)) > output.txt

要使用此程序,请将用引号括起来的替换字符串作为参数。例如:

replace.bat "some_name=server 1" "DB_name=A real database on Server 1"

输出:

<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>

关于batch-file - 是否可以使用批处理脚本编辑.Config 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16465051/

相关文章:

jquery - Rails 3 - best_in_place 编辑

drupal 隐藏非管理员用户的帐户电子邮件和密码更改

postgresql - 在现有安装程序中隐藏几个步骤

windows - 为什么这个增量不能批量工作?

sql-server - sql server 驱动程序名称

asp.net - 自定义配置部分的 Web.Config 转换

php - 切换到从 PHP 编辑 Mysql 数据

batch-file - Windows 批处理——保存文件名列表,不包括列表文件本身

c++ - 程序不能写文件

c# - 处理文件大小 AjaxControlToolkit AjaxUpload