2012-10-30 40 views
1

我正在查找批處理腳本以在文件中搜索變量並讀取其值。 例子: 我的文本文件具有行作爲批處理腳本在文件中查找變量並將其值讀取到變量中

VERSION=6.0.196.0 
CS_VERSION=6.0 

我希望我的批處理腳本找到變量VERSION和我的批處理腳本讀取它的值(6.0.196.0)給一個變量PVERSION然後的CS_VERSION值(6.0)到另一個變量DVERSION

我該怎麼做? 搜索一些類似的問題,但他們給了我作爲輸出:

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

我只需要爲

​​

請幫助輸出,並在此先感謝。

+0

它是純文本文件還是二進制文件? – jeb

+0

是Jeb它是一個純文本文件 – Bala

回答

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% 
+0

亞歷克斯,回聲VERSION和CS_VERSION都沒有給出任何輸出。 – Bala

+0

如果我把'VERSION = 6.0.196.0'和'CS_VERSION = 6.0'放在一個文本文件中,確定路徑是正確的? –

+0

是的路徑是正確的,它的文本。文本文件中有大約24行。 VERSION和CS_VERSION分別位於第18和第19行。所以我在skip循環中使用了skip = 17。 – Bala

相關問題