Page 1 sur 1

Variable

Posté : 23 nov. 2019 16:44
par dgi972
Bonjour à tous,

J'ai besoin d'un coup de pouce pour récupérer une variable "reformatée" en sorti d'une boucle.

J'ai un fichier csv toto.txt de la forme :

A;TOTO ;20191024;20191025;M;3;9;1;
T;9996925;322333241019;999990968300;000003227227;011000065;8911925;0;0;000;000;BL;1;0;1;1;E;
R;6831635;522555509683;001225100073;000000100000;011000066;7711067;0;0;000;000;BL;1;0;1;1;E;
C;5363208;022003825908;004225422666;000000100000;011000067;7711068;0;0;000;000;BL;1;0;1;1;E;
R;6831636;555225509680;006227000048;000000047000;011000068;7711069;0;0;000;000;BL;1;0;1;1;E;
C;7060796;050022606908;084223417417;000000047000;011000069;7711070;0;0;000;000;BL;1;0;1;1;E;

Je souhaite récupérer la date (ici 20191024 au format AAAAMMJJ) qui se trouve dans la première ligne dans la troisième champ du csv puis la reformater en sortie de la forme JJMMAAAA.

Je n'arrive pas a avoir ma variable DATES au format 24102019 (avec 6,2 4,2 et 0,4) en sortie @echo %DATES%

Voici mon début de code:

------------------------8<------------------------------
@echo on
for /f "tokens=1,2,3 delims=;" %%I in (d:\EXTRACT_CD\toto.txt) do (
@echo %%I
@echo %%J
@echo %%K
IF "%%I"=="A" SET "DATES=%%K:~6,2%%%K:~4,2%%%K:~0,4%"
goto end
)
:end

@echo %DATES%
------------------------8<------------------------------

Une petite idée SVP ?

Cordialement
dgi972

Re: Variable

Posté : 23 nov. 2019 20:21
par barnabe0057
Bonjour,

Tu ne peux pas découper directement les variables de la boucle FOR, il faut assigner une nouvelle variable :

Code : Tout sélectionner

@echo off
setlocal enabledelayedexpansion

for /f "tokens=1,2,3 delims=;" %%I in (d:\EXTRACT_CD\toto.txt) do (
set champ=%%K
if "%%I"=="A" SET "DATES=!champ:~6,2!!champ:~4,2!!champ:~0,4!"
goto :end
)

:end
echo %DATES%

RESOLU Re: Variable

Posté : 23 nov. 2019 22:26
par dgi972
Bonjour,

Cela réponds bien à mes attentes et interrogations .

Un grand Merci.

Re: Variable

Posté : 27 août 2020 00:34
par Mia11
In truth, once I read it, it will be more useful.