Bonjour à tous,
j'ai besoin d'un expert VBS, on me demande de convertir un .bat en .vbs.
Je ne maitrise pas très bien les boucles.
Mon script .bat à beaucoup de lignes mais je pense qu'en vbs il en faut moins.
ce que fait mon script:
------------------------------------------------------------------------
Il vérifie qu'un .lock n'est pas présent dans "c:\Donnees\fic_%Centre%.lock" si oui il arrête le script.
Il vérifie la présence des dossiers dans l'arbo
"E:\projets\%%P\input\Fichin_temp"
"E:\projets\%%P\input\Fichin_temp\Traitement"
"E:\projets\%%P\input\Fichin_temp\save"
il verifie si un lock est posé avent le traitement du zip dans c:\Donnees\%%A.lock: warning echo ------ WARNING : Fichier ZIP deja traite
il déplace le zip dans Doubles_Fic si réception en double
Il décompresse avec winzip, et pose un lock
Déplacement des fichiers (.doc) décompresser vers le dossier traitement
il vérifie la présence des .doc sinon warning
Il déplace les .doc des dossiers Fichin_temp vers Fic_non_natif
il déplace les .zip dans "E:\projets\%%P\input\Fichin_temp\save"
Le tout tracé dans un .log
--------------------------------------------------------------------------
le script en .bat
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105 @echo off set Plaque=%1% set Centre=%2% set JOUR=%date:~0,2% set MOIS=%date:~3,2% set ANNEE=%date:~6,4% set HEURE=%time:~0,2% set MINUTE=%time:~3,2% set LOG=C:\Log\fic_%ANNEE%_%MOIS%_%JOUR%.log set Traitement=%zip% echo ---- DEBUT : Traitement du %JOUR%/%MOIS%/%ANNEE% a %HEURE%:%MINUTE% >>%LOG% echo ---- INFO : Plaque=%Plaque% pour Centre=%Centre% >>%LOG% echo ---- INFO : zip=%zip% >>%LOG% if exist c:\Donnees\fic_%Centre%.lock ( echo ---- ERREUR : Programme deja lance pour le centre %Centre% >>%LOG% echo -- FIN : Traitement du %JOUR%/%MOIS%/%ANNEE% a %HEURE%:%MINUTE% >>%LOG% ) else ( echo ------ Debut : Creation du fichier lock pour le centre %Centre% >>%LOG% echo "" > c:\Donnees\fic_%Centre%.lock echo ------ Fin : Creation du fichier lock pour le centre %Centre% >>%LOG% E: for %%P in ( Stat90_%Plaque%\Appli_%Centre% ) do ( if exist E:\Projet\%%P\input\Fichin_temp ( cd /d E:\projets\%%P\input\Fichin_temp ) ELSE ( echo ------ERREUR : E:\projets\%%P\input\Fichin_temp non present >>%LOG% ) if not exist E:\projets\%%P\input\Fichin_temp\Traitement ( echo ------ Debut : Creation repertoire E:\projets\%%P\input\Fichin_temp\Traitement >>%LOG% mkdir E:\projets\%%P\input\Fichin_temp\Traitement echo ------ Fin : Creation repertoire E:\projets\%%P\input\Fichin_temp\Traitement >>%LOG% ) if not exist E:\projets\%%P\input\Fic_non_natif echo ------ERREUR : E:\projets\%%P\input\Fic_non_natif non present >>%LOG% if not exist E:\projets\%%P\input\Fichin_temp\save ( echo ------ Debut : Creation du repertoire de sauvegarde E:\projets\%%P\input\Fichin_temp\save >>%LOG% mkdir E:\projets\%%P\input\Fichin_temp\save echo ------ Fin : Creation du repertoire de sauvegarde E:\projets\%%P\input\Fichin_temp\save >>%LOG% ) DIR /B "E:\projets\%%P\input\Fichin_temp\%zip%" 2> /nul if errorlevel 1 ( echo ------ WARNING : Pas de fichier zip dans E:\projets\%%P\input\Fichin_temp >>%LOG% ) else ( FOR /F %%A IN ('DIR /B E:\projets\%%P\input\Fichin_temp\%zip%') DO ( echo _______________________________ %%A if exist c:\Donnees\%%A.lock ( echo ------ WARNING : Fichier ZIP deja traite >>%LOG% echo ------ Debut : deplacement du fichier %%A dans repertoire E:\TEMP\Doubles_Fic >>%LOG% move "E:\projets\%%P\input\Fichin_temp\%%A" "E:\TEMP\Doubles_Fic" echo ------ Fin : deplacement du fichier %%A dans repertoire E:\TEMP\Doubles_Fic >>%LOG% ) else ( echo ------ Debut : Decompression fichier : %%A >>%LOG% "C:\Program Files\Winzip\wzunzip.exe" %%A >>%LOG% echo ------ Fin : Decompression fichier : %%A >>%LOG% echo ------ Debut : Pose du fichier lock : %%A.lock >>%LOG% echo "" > c:\Donnees\%%A.lock echo ------ Fin : Pose du fichier lock : %%A.lock >>%LOG% if errorlevel 0 ( echo ------ Debut : Deplacement fichier %%A vers repertoire temporaire E:\projets\%%P\input\Fichin_temp\Traitement >>%LOG% move "E:\projets\%%P\input\Fichin_temp\%%A" "E:\projets\%%P\input\Fichin_temp\Traitement" echo ------ Fin : Deplacement fichier %%A vers repertoire temporaire E:\projets\%%P\input\Fichin_temp\Traitement >>%LOG% for /F %%B IN ('DIR /B *.txt') DO ( if not exist %%B ( echo ------ WARNING : Fichier %%B non present >>%LOG% ) else ( echo ------ Debut : Deplacement fichier doc %%B vers E:\projets\%%P\input\Fichin_temp >>%LOG% move "E:\projets\%%P\input\Fichin_temp\%%B" "E:\projets\%%P\input\Fic_non_natif" echo ------ Fin : Deplacement fichier %%B vers E:\projets\%%P\input\Fic_non_natif >>%LOG% ) ) echo ------ Debut : Deplacement fichier %%A >>%LOG% move "E:\projets\%%P\input\Fichin_temp\Traitement\%%A" "E:\projets\%%P\input\Fichin_temp\save" echo ------ Fin : Deplacement fichier %%A >>%LOG% if exist E:\projets\%%P\input\Fichin_temp\save\%%A ( echo ------ INFO : Le fichier %%A a ete deplace dans E:\projets\%%P\input\Fichin_temp\save\ >>%LOG% ) else ( echo ------ WARNING : Le fichier %%A n'a pas ete déplace >>%LOG% ) ) else ( echo ------ WARNING : Probleme lors de la decompression du fichier %%A >>%LOG% ) echo ------ Fin : Decompression fichier : %%A >>%LOG% ) ) ) ) echo ---------Fin Traitement du %JOUR%/%MOIS%/%ANNEE% a %HEURE%:%MINUTE% ---------------------------------- >>%LOG% echo ---- Debut : Suppression du lock de lancement pour %Centre% >>%LOG% del c:\Donnees\fic.bat.%Centre%.lock echo ---- Fin : Suppression du lock de lancement pour %Centre% >>%LOG% echo -- FIN : Traitement du %JOUR%/%MOIS%/%ANNEE% a %HEURE%:%MINUTE% >>%LOG% )
Voilà je ne sais pas si j'ai été très clair, mais là, j'ai vraiment
besoin de vous. Merci à tous.
PAB/31/SAB
Partager