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 :
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)
Je ne connais pas à l'avance le positionnement des dates, donc je recherche sur chaque ligne l'existence des mots FACTURE, DU et AU
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:
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
				)
			)
		) 
	)
le fichier facture_periode.csv contient :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
29/08/2018 10:27:30;;;01/06/18;30/06/18;
J'ai bien mes 2 dates mais donc DebutOrig et FinOrig sont vides.
J'ai essayé de mettre ou sans plus de résultats.

Je n'ai pas trouvé sur les FAQ de solutions.

Auriez-vous une idée ?

Cordialement