Voila j'ai un petit souci psyco-technique pour finir mon Batch... Je vous explique mon problème:
Je voudrais récupérer une variable contenu dans un fichier CSV. J'ai un fichier csv qui se compose de la manière suivante: ip1;chemin1 IP2;chemin2 IP3;chemin3 ...
Je souhaiterai assigner le cheminX à une variable Y correspondant à la variable IPX. en gros mon résultat c'est ça : Si IP== IP1 alors Y=chemin1.
Voici un bout de code :
@echo off
REM je récupere mon IP for /F "tokens=15-18 delims=:." %%i in ('ipconfig^|find "Adresse IPv4"') do ( set IP=%%i.%%j.%%k.%%l )
setlocal enabledelayedexpansion
REM Je mets chaque lignes de mon csv dans un tableau set c=0 for /f "tokens= 1,2 delims=;" %%a in ('type D:\test.csv') do ( Set table[!c!]=%%a REM ===> colonne1 Set table[!d!]=%%b REM ===> colonne2 Set /a c+=1 )
REM Si mon ip se trouve dans une des valeurs du tableau alors il faut récupérer la variable chemin correspondante. Set /a c-=1
For /L %%a in (0,1,%c%) do ( if "%IP:~1%" == "!table[%%a]!" set test=table[%%b]! REM ==> c'est sur cette ligne au niveau du set que je n'arrive pas à récupéré %%b correspondant à %%a )
J'espère avoir été assez clair et précis Merci par avance pour votre aide !!! et merci quand même si vous ne savez m'aider
mart
--------------- J’adorerais changer le monde, mais ils ne veulent pas me fournir le code source
Marsh Posté le 27-03-2014 à 14:46:20
bonjour Terre Tous,
Voila j'ai un petit souci psyco-technique pour finir mon Batch... Je vous explique mon problème:
Je voudrais récupérer une variable contenu dans un fichier CSV. J'ai un fichier csv qui se compose de la manière suivante:
ip1;chemin1
IP2;chemin2
IP3;chemin3
...
Je souhaiterai assigner le cheminX à une variable Y correspondant à la variable IPX.
en gros mon résultat c'est ça :
Si IP== IP1 alors Y=chemin1.
Voici un bout de code :
@echo off
REM je récupere mon IP
for /F "tokens=15-18 delims=:." %%i in ('ipconfig^|find "Adresse IPv4"') do (
set IP=%%i.%%j.%%k.%%l
)
setlocal enabledelayedexpansion
REM Je mets chaque lignes de mon csv dans un tableau
set c=0
for /f "tokens= 1,2 delims=;" %%a in ('type D:\test.csv') do (
Set table[!c!]=%%a REM ===> colonne1
Set table[!d!]=%%b REM ===> colonne2
Set /a c+=1
)
REM Si mon ip se trouve dans une des valeurs du tableau alors il faut récupérer la variable chemin correspondante.
Set /a c-=1
For /L %%a in (0,1,%c%) do (
if "%IP:~1%" == "!table[%%a]!" set test=table[%%b]! REM ==> c'est sur cette ligne au niveau du set que je n'arrive pas à récupéré %%b correspondant à %%a
)
J'espère avoir été assez clair et précis
Merci par avance pour votre aide !!! et merci quand même si vous ne savez m'aider
mart
---------------
J’adorerais changer le monde, mais ils ne veulent pas me fournir le code source