源文件: sha_pi.txt
ARCHITECTURE=32
BUILD_INI_FILE=sha_pi
BUILD_VERSION=sha_pi
BUILD_MODE=release
BUILD_RELEASE_PATH=\\cnpvgl000\Restricted\BI_ALL\Automation\ASTEC4\components\cvom_pi\1586\win32_x86\release\bin
BUILD_PLATFORM=win32_x86
BUILD_NUMBER=1586
BUILD_TYPE=sha_pi
suite=sha_pi
SETUP_PATH=\\cnpvgl000\Restricted\BI_ALL\Automation\ASTEC4\components\cvom_pi\1586\win32_x86\release\bin
SETUP_PATH_BusinessObjectsServer=placeholder
程序目的: 把
BUILD_RELEASE_PATH=\\cnpvgl000\Restricted\BI_ALL\Automation\ASTEC4\components\cvom_pi\1586\win32_x86\release\bin
BUILD_NUMBER=1586
SETUP_PATH=\\cnpvgl000\Restricted\BI_ALL\Automation\ASTEC4\components\cvom_pi\1586\win32_x86\release\bin
中的1586替换成指定的编号
实现:
@echo off
set dev_build_number=10086
::开启命令扩展延迟
setlocal enabledelayedexpansion
for /f "tokens=* delims=" %%a in (sha_pi.txt) do (
set aa=%%a
::截取字符串,匹配是否相等
if "!aa:~0,13!" == "BUILD_NUMBER=" (
::定位到所在行,直接替换该行内容
set aa=BUILD_NUMBER=%dev_build_number%
) else (
echo Does not replace.
)
::把内容写入到一个缓存文件
echo !aa!>>temp.txt
)
::删除源文件
del sha_pi.txt
::把缓存文件命名为源文件名
ren "temp.txt" "sha_pi.txt"
结束命令扩展延迟
endlocal
以上也可以根据“=”作为分隔符,来实现上述功能
@echo off
for /f "tokens=2 delims==" %%i in (sha_pi.txt) do echo %%i
在该PI\bin\build_job_env.properties路径下的文件内容中,有
build_job_env.BUILD_NUMBER= 3658
程序目的:获取
build_job_env.BUILD_NUMBER的值
set PI_build_number = 0
::
"tokens=1, 2 delims= "表示取第一列和第二列,空格区分列
for /F "tokens=1, 2 delims= " %%i in (PI\bin\build_job_env.properties) do (
if "%%i" == "build_job_env.BUILD_NUMBER=" set /a PI_build_number = %%j
)
echo %PNR_DIR%\%PI_build_number%