批处理脚本,用于在文件中查找变量并将其值读取到变量

时间:2012-10-30 09:22:26

标签: batch-file

我正在寻找一个批处理脚本来搜索文件中的变量并读取其值。 例: 我的文本文件的行为

VERSION=6.0.196.0
CS_VERSION=6.0

我希望我的批处理脚本找到变量VERSION并将其值(6.0.196.0)读取到我的批处理脚本中的变量PVERSION,然后读取值CS_VERSION6.0)另一个变量DVERSION

我该怎么做? 搜索了一些类似的问题,但他们给我输出:

PVERSION==VERSION=6.0.196.0
DVERSION==CS_VERSION=6.0.

我只需输出

PVERSION=6.0.196.0
DVERSION=6.0.

请提前帮助和谢谢。

1 个答案:

答案 0 :(得分:3)

单向(读取每一行,分隔=并将lhs / rhs捕捉到%%A& %%B);

@echo off
setlocal EnableDelayedExpansion
for /F "eol= tokens=1,2 delims==," %%A in (the.file) do (
    if "%%A"=="VERSION" (
        set version=%%B
    ) else if "%%A"=="CS_VERSION" (
        set cs_version=%%B
    )
)

echo VERSION is %version%
echo CS_VERSION is %cs_version%

测试;

@echo off
@(
echo 1
echo 2
echo 3
echo 4
echo 5
echo 6
echo 7
echo 8
echo 9
echo 10
echo 11
echo 12
echo 13
echo 14
echo 15
echo 16
echo 17
echo VERSION=6.0.196.0
echo CS_VERSION=6.0
) > the.file

setlocal EnableDelayedExpansion
for /F "eol= tokens=1,2 delims==, skip=17" %%A in (the.file) do (
    if "%%A"=="VERSION" (
        set version=%%B
    ) else if "%%A"=="CS_VERSION" (
        set cs_version=%%B
    )
)

echo VERSION is %version%
echo CS_VERSION is %cs_version%