我在Visual Studio 2013中创建了一个Web应用程序。我在我的Web.Config文件中有这个appSetting:
<add key="cloudVersion" value="@@NEW@@"/>
发布应用程序后,我运行一个bat文件复制已发布的目录,将今天的日期附加到目录名称,压缩更新的目录,然后将其上传到Google驱动器,以便我的团队的其他成员可以访问它。 / p>
我正在尝试使用相同的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来更新值,但是不能获得我以后要删除的编号行?
答案 0 :(得分:2)
如果有人在看,我就是这样做的:
@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""%"