Transformer un .bat en .vbs
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:
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