Pour afficher field1 field2 field3:
for /F "tokens=1,2,3" %a IN ('echo field1 field2 field3') DO @echo %a %b %c
Pour afficher field1 field2:
for /F "tokens=1,2" %a IN ('echo field1 field2 field3') DO @echo %a %b
Compter le nombre de ligne dans un fichier (^ est un caractère d'échappement à mettre devant |)
for /f %a in ('type myfile.txt^| find "" /v /c') do set /a cnt=%a
Ici on récupère le résultat de la commande hostname
dans la variable SERVERNAME
for /f "tokens=*" %%a in ('hostname') do set SERVERNAME=%%a
Nous avons le fichier CSV myfile.csv
suivant :
Toto;20;paris Titi;45;Lyon Tata;37;Nice
Résultat à atteindre :
NOM : Toto AGE : 20 VILLE : paris --- NOM : Titi AGE : 45 VILLE : Lyon --- NOM : Tata AGE : 37 VILLE : Nice ---
Pour atteindre ce résultat il faut le script suivant :
@echo off setlocal ENABLEDELAYEDEXPANSION for /f "tokens=*" %%i in ('type myfile.csv') do ( for /f "tokens=1 delims=;" %%m in ("%%i") do set NOM=%%m for /f "tokens=2 delims=;" %%m in ("%%i") do set AGE=%%m for /f "tokens=3 delims=;" %%m in ("%%i") do set VILLE=%%m echo NOM : !NOM! echo AGE : !AGE! echo VILLE : !VILLE! echo --- ) pause