batch-file - bat 文件修改 web.config 设置

标签 batch-file replace

我在 Visual Studio 2013 中创建了一个 Web 应用程序。我的 Web.Config 文件中有此 appSetting:

<add key="cloudVersion" value="@@NEW@@"/>

发布应用程序后,我运行一个bat文件,该文件复制已发布的目录,将今天的日期附加到目录名称,压缩更新的目录,并将其上传到Google驱动器,以便我的团队的其他成员可以访问它。

我正在尝试使用相同的bat文件来修改cloudVersion设置,以便我们可以看到它何时从应用程序内发布。我有这个代码:

@echo off &setlocal
set "search=@@NEW@@"
set "replace=%yy%%mm%%dd%"
(for /f "delims=" %%i in ('findstr /n "^" "%""C:\original files\Web.config""%"') do (
    set "line=%%i"
    setlocal enabledelayedexpansion
    set "line=!line:%search%=%replace%!"
    echo(!line!
    endlocal
))>"%""C:\Publish Folder\CLOUD"%yy%.%mm%.%dd%"\Web.Config""%"
type "%""C:\Publish Folder\CLOUD"%yy%.%mm%.%dd%"\Web.Config""%"

它正确复制 Web.Config 文件并替换 cloudVersion 变量值。但是,整个文件现在每行的编号如下:

23:  </system.web.extensions>
24:  <appSettings>
25:    <add key="cloudVersion" value="20140818"/>

如何使用 bat 更新值,但不获取稍后必须删除的编号行?

最佳答案

如果有人在看,这就是我所做的:

@echo off &setlocal
set "search=@@NEW@@"
set "replace=%yy%%mm%%dd%"
(for /f "delims=" %%i in ('findstr "^" "%""C:\original files\Web.config""%"') do (
    set "line=%%i"
    setlocal enabledelayedexpansion
    set "line=!line:%search%=%replace%!"
    echo(!line!
    endlocal
))>"%""C:\Publish Folder\CLOUD"%yy%.%mm%.%dd%"\Web.Config""%"
type "%""C:\Publish Folder\CLOUD"%yy%.%mm%.%dd%"\Web.Config""%"

关于batch-file - bat 文件修改 web.config 设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25366097/

相关文章:

C# 生成后批处理文件返回 '´╗┐'

batch-file - 当用户按下按钮时停止循环

windows - “无法将X识别为内部或外部命令,可操作程序或批处理文件”的原因是什么?

mysql: 替换字符串中的\(反斜杠)

php - 将 img src 替换为 php

python - 当模式包含重复项时如何在python中顺序替换模式

windows - 如何从批处理文件中获取刚启动的进程的 PID?

batch-file - 'for' dos 命令中有关 UnxUtils Sed 的一些错误

javascript regex ...如何转义连字符

haskell - 在 Haskell 中表达一系列脚本化的 Python 字符串替换