Bonjour

J'ai fais un programme qui renomme un ensemble de fichiers recus selon une convention de nommage avec un numero de lot qui s'incremente puis réaliser un zip avant envoi.

Pour faire l'incrémentation j'ai créé un fichier lot.conf où j'ai mis la valeur "1" à l'intérieur qui sera récupérée par le programme.

Tout fonctionne sauf pour une chose que je cherche à faire mais je n'y arrive pas: effectivement le champs qui contient le nom de lot doit être de taille 8 et donc à chaque traitement je dois renommé avec le nouveau incrément par exemple 2 et completer la variable de tel sorte à arriver à 8 donc je devrais avoir 0000002 et si j'ai 22 meme chose : 00000022...

Je suis donc parti sur des calcul de taille de chaine mais impossible de voir comment ajouter ces 0

voilà mon bout de code

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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
@echo off
setlocal EnableDelayedExpansion

Rem ---- définition des variables---

	set currentpath=%~dp0
	set logdir=%currentpath%log\%date:~6,4%%date:~3,2%%date:~0,2%
	set logfile=%logdir%\scan_gbr_%date:~6,4%%date:~3,2%%date:~0,2%_%time:~0,2%h%time:~3,2%%time:~6,2%.log
	set /p LotNum=<%currentpath%\conf\lot.conf
	set LotNum=!LotNum: =!
	set /a LotNumNext=%LotNum%+1
	set NN=0

echo lot num = %LotNum%
echo lot suivant = %LotNumNext%

set hour=%time:~0,2%
set min=%time:~3,2%
set horodatage=%date:~6,4%%date:~3,2%%date:~0,2%T%hour%%min%

	set repWork=%currentpath%WORK_GBR\
	set repScan=%currentpath%SCAN_GBR\
	set EXT=7z
	set zipfile=BNPPLS_GBR_2_%horodatage%_0000%LotNum%.%EXT%

Rem echo %horodatage%
Rem echo %zipfile%
Rem echo %hour%
Rem echo %min%
Rem echo total %hour%%min%
Rem echo %dt%

Rem ---------------------

Rem ----Debut programme -------


REM if not exist %repScan%*.eml GOTO :LOGS

if not exist %repScan%*.eml GOTO :LOGS else echo toto

REM else if (not exist %logdir%) mkdir %logdir% else goto :START



:START
del /Q %repWork%\* >> %logfile%

cd SCAN_GBR >> %logfile%
Move *.*  %repWork% >> %logfile%
cd %RepWork% >> %logfile%

FOR %%I IN (*.*) DO call :INCREM "%%I" >> %logfile%

Rem "C:\Program Files\WinZip\Winzip8.1_FR\WINZIP32.exe" -a %repWork%%zipfile% %repWork%\*.* >> %logfile%

"C:\Program Files\7-Zip\7-Zip 4.23\7za.exe" a %repWork%%zipfile% %repWork%\* >> %logfile%

REM ------ Suppression fichiers après compression -----

REM for /f "delims=" %%f in ('dir /b') do  if not %%~xf == .%EXT% del %%f >> %logfile%

Rem --- incrémentation du numéro de lot -----

echo %LotNumNext% >%currentpath%\conf\lot.conf

Rem ----- Envoi CFT -----------

Rem D:\APPS\CFTG\scripts\cftxsend.bat -D "%part%" -I "%idf%" -F "%chemin%+%fichier%" -P "%env%_%fichier%" –O “RUSER=CANON01M,SUSER=10000000,SAPPL=0x515E7A98”

Rem ----- fin envoi CFT -------


Rem --- fonction de renommage des fichiers -------

REM GOTO: EOF
:INCREM
rename %1 "BNPPLS_GBR_2_%horodatage%_0000%LotNum%_0000000%NN%"
set /A NN=NN+1

Rem ----- fin Fonction Renommage ----

:LOGS
echo Pas de fichier à traiter: dossier Scan vide ! >> %logfile%