2012-10-30 5 views
1

Je cherche un script batch pour rechercher une variable dans un fichier et lire sa valeur. Exemple: Mon fichier texte a des lignes commeScript batch pour rechercher une variable dans un fichier et lire sa valeur dans une variable

VERSION=6.0.196.0 
CS_VERSION=6.0 

Je veux que mon script batch pour trouver la variable VERSION et lire sa valeur (6.0.196.0) à une PVERSION variable dans mon script batch et la valeur de CS_VERSION (6.0) à une autre variable DVERSION.

Comment puis-je faire cela? recherché pour des questions similaires, mais ils me donnent des sorties comme:

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

J'ai juste besoin de sortie comme

PVERSION=6.0.196.0 
DVERSION=6.0. 

S'il vous plaît aider et merci à l'avance.

+0

Est-ce un fichier texte brut ou binaire? – jeb

+0

Oui Jeb c'est un fichier texte brut – Bala

Répondre

3

Une façon (lire chaque ligne, délimitant sur = et capturer les 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% 

test;

@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

Alex, faisant écho à la fois VERSION et CS_VERSION ne donne aucune sortie .. – Bala

+0

Cela fonctionne pour moi si je mets 'VERSION = 6.0.196.0' et' CS_VERSION = 6.0' sur les lignes dans un fichier texte , est-ce que le chemin est correct? –

+0

Oui le chemin est correct et c'est un texte. Il y a environ 24 lignes dans le fichier texte. La VERSION et CS_VERSION sont en 18ème et 19ème ligne. J'ai donc utilisé skip = 17 in pour la boucle. – Bala

Questions connexes