Bonjour
Je ne pratique quasiment pas les batchs et je rencontre donc des problèmes, jugés évident aux pratiquants.
Je récupère des dates dans un fichier texte et je veux les transformer avant de les écrire avec d'autres variables dans un autre fichier texte.
Voici mon fichier texte :
Je ne connais pas à l'avance le positionnement des dates, donc je recherche sur chaque ligne l'existence des mots FACTURE, DU et AU
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 01/07/18 04:00 Page : 1 SOCIETE X * ADRESSE FACTURE TRANSF. VERS BAT.17 DU 01/06/18 AU 30/06/18 TOTAL CONSO (ORANGE GSM / COMPLETEL / FT)
avec une boucle.
Une fois la ligne trouvée, je dois corriger les dates pour faire apparaître le siècle.
Je dois stocker dans un fichier de sortie ceci :
date-heure du jour;date de début avec le siècle;date de fin avec le siècle;
donc ceci:
29/08/2018 10:27:30;01/06/2018;30/06/2018;
Mais je ne parviens pas à initialiser mes variables avec les dates de début et de fin (pour ajouter ensuite le siècle).
Voici mon script:
le fichier facture_periode.csv contient :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 setlocal enabledelayedexpansion cls @echo off set Aujourdhui=%date% set HeureDiz=%time:~0,1% set SuiteHeure=%time:~1,7% :: mais heure peut etre sur 1 seul chiffre echo %HeureDiz% if NOT "%HeureDiz%" == "1" ( if NOT "%HeureDiz%" == "2" ( set HeureDiz=0 ) ) :: echo %HeureDiz% set DHJour=%Aujourdhui% %HeureDiz%%SuiteHeure% echo %DHJour% :: boucle pour localiser les début et fin de période for /f "tokens=1,2,3,4,5,6,7,8,9,10* delims= " %%a in ('type facturecopieentete.csv') do ( echo a=%%a b=%%b c=%%c d=%%d e=%%e f=%%f g=%%g h=%%h if %%a EQU FACTURE ( ::echo une facture if %%e EQU DU ( if %%g EQU AU ( echo Periode : %%f %%h echo on set DebutOrig=%%f set FinOrig=%%h ::set Debut=%DebutOrig:~0,6%20%DebutOrig:~6,2% ::set Fin=%FinOrig:~0,6%20%FinOrig:~6,2% echo %DHJour%;%DebutOrig%;%FinOrig%;%%f;%%h;>> facture_periode.csv echo off ) ) ) )
J'ai bien mes 2 dates mais donc DebutOrig et FinOrig sont vides.
Code : Sélectionner tout - Visualiser dans une fenêtre à part 29/08/2018 10:27:30;;;01/06/18;30/06/18;
J'ai essayé de mettreou
Code : Sélectionner tout - Visualiser dans une fenêtre à part "%%h"sans plus de résultats.
Code : Sélectionner tout - Visualiser dans une fenêtre à part !%%h!
Je n'ai pas trouvé sur les FAQ de solutions.
Auriez-vous une idée ?
Cordialement
Partager