我有一个属性文件构建。包含以下信息的属性
conf.major.number=1
conf.minor.number=0
core.major.number=3
core.minor.number=2
我希望我的批处理脚本从conf.major.number和conf.minor.number中获取值,并将输出结果设置为1.0,并将其设置为变量"version"
,当我输入echo %version%时,输出应该是1.0
for /f "skip=1 delims== tokens=2" %%a in (build_info.properties) DO (set "version=%%a")
echo %version%
core.major.number=1
core.minor.number=0
上面的行应该被忽略,我不知道如何跳过这些行。
请帮忙,
感谢这是解决方案,它工作完美感谢@JosefZ
@ECHO OFF SETLOCAL EnableExtensions EnableDelayedExpansion
set VER_FILE="tldconfrev.number"
set /p id=Enter Ant target to be called "revision" or "hi":
set /p flag=Do you want the version file to be updated to perforce (Y/N):
echo(%id%
if /I "%id%"=="revision" (
if /I "%flag%"=="Y" (
for /f "delims=" %%a in (
'type "build_info.properties"^|find "="'
) DO (
set "_%%a"
)
set _
set "version=!_conf.major.number!.!_conf.minor.number!"
echo version=!version!
pause
)
)
尝试下一个方法:
@ECHO OFF
SETLOCAL EnableExtensions
for /f "delims=" %%a in (
'type "D:batfilesbuild_info.properties"^|find "="'
) DO (
set "_%%a"
)
set _
set "version=%_conf.major.number%.%_conf.minor.number%"
echo version=%version%
:
==>D:batSO32266650.bat
_conf.major.number=1
_conf.minor.number=0
_core.major.number=3
_core.minor.number=2
version=1.0
==>
编辑关于您的评论(接下来,请编辑您的问题并在那里添加代码):
@ECHO OFF SETLOCAL EnableExtensions EnableDelayedExpansion
set VER_FILE="tldconfrev.number"
set /p id=Enter Ant target to be called "revision" or "hi":
set /p flag=Do you want the version file to be updated to perforce (Y/N):
echo(%id%
if /I "%id%"=="revision" (
if /I "%flag%"=="Y" (
for /f "delims=" %%a in (
'type "build_info.properties"^|find "="'
) DO (
set "_%%a"
)
set _
set "version=!_conf.major.number!.!_conf.minor.number!"
echo version=!version!
pause
)
)
参考资料(必读):
- (命令参考)Windows CMD命令行索引
- (附加特性)Windows CMD Shell命令行语法
- (
%~G
等特殊页)命令行参数(参数) - (特殊页)enabledelayeexpansion
给猫剥皮的方法不止一种——这里还有两种:
:
@echo off
for /f "usebackq delims=" %%a in ("build_info.properties") do set %%a
echo Version is "%conf.major.number%.%conf.minor.number%"
pause
B:
@echo off
<build_info.properties (
set /p maj=
set /p min=
)
set %maj%
set %min%
echo Version is "%conf.major.number%.%conf.minor.number%"
pause