Bonjour à la communauté,
J'ai un souci de taille en Bash que je ne sais pas régler par moi même (malgré les multiples essais )
Je suis au courant que certaines choses ne sont pas propre (comme le timer 40 s) mais je n'ai pas envie de me prendre la tête avec les processus.@echo off
cls
if not exist C:\log\ (
md D:\log\
)
@echo ------------------------------------------------Appel du batch------------------------------------------------ > D:\log\appel.log
@echo. >> D:\log\appel.log
@echo. >> D:\log\appel.log
@echo. >> D:\log\appel.log
@echo. ***************************creation de l emplacement reseau*************************** >> D:\log\appel.log
@echo. >> D:\log\appel.log
net use T: \\Nom ordi\scriptexecute MDP /user:utilisateur@domaine.extension
@echo creation de l'emplacement reseau traite >> D:\log\appel.log
@echo. >> D:\log\appel.log
@echo. >> D:\log\appel.log
@echo. ***************************appel du fichier test.bat*************************** >> D:\log\appel.log
@echo. >> D:\log\appel.log
start T:\script.bat
@echo appel du fichier test.bat prit en compte >> D:\log\appel.log
@echo. >> D:\log\appel.log
@echo. >> D:\log\appel.log
timeout 40
@echo. *******************************supression emplacement reseau******************************* >> D:\log\appel.log
@echo. >> D:\log\appel.log
net use * /delete /yes
@echo supression emplacemement reseau traite >> D:\log\appel.log
@echo. >> D:\log\appel.log
@echo. >> D:\log\appel.log
@echo. *******************************Supression des traces******************************* >> D:\log\appel.log
rmdir C:\sources\ /s /q
@echo suppression du dossier sourDe traite >> D:\log\appel.log
1ere question : Comment se fait t'il qu'il trouve forcement le dossier scriptexecute (placé sur le PC dans U: alors que D : est aussi partagé) sans qu'on est à lui dire (T: \\Nom ordi\U:\scriptexecute ) que le dossier se trouve dans le U: ?
2éme question : Comment je peux améliorer le script pour que l'appel devienne dynamique (le script appel.bat est en dur dans le master WDS et donc non modifiable / peu maniable) et que si on rajoute un script?
Je m'explique, si l'on souhaite changé le dossier de stockage des scripts sur le serveur WDS, alors que le script d'appel prenne en compte le nouveau dossier & que si on rajoute des scripts dans ce dossier alors que l'ensemble des scripts présent dans le dossier soit exécuté.
j'ai essayé de lister avec dir les script *.bash du dossier scriptexecute puis de mettre le résultat dans des variables pour ensuite les utilisés pour lancer les scripts mais je n'y arrive pas ainsi.
Actuellement je travail sur la forme
for %%f in (T:\*.bat) do call :process %%f
goto :eof
:process
SET fichier=%f%
start %fichier%
:eof
Message à 17H13
Voila ce que je fais en comme modification en ce moment même (le If & la double arrête le script => les logs le montre)
@echo off
cls
if not exist C:\log\ (
md D:\log\
)
@echo ------------------------------------------------Appel du batch------------------------------------------------ > D:\log\appel.log
@echo. >> D:\log\appel.log
@echo. >> D:\log\appel.log
@echo. >> D:\log\appel.log
@echo *******************************creation de l emplacement reseau******************************* >> D:\log\appel.log
@echo. >> D:\log\appel.log
@net use T: \\nomordi\nomdossier mdp /user:user@domaine.extension
@echo creation de l'emplacement reseau traite >> D:\log\appel.log
@echo. >> D:\log\appel.log
@echo. >> D:\log\appel.log
@echo *******************************Mappage batch(s) dans l'emplacement reseau******************************* >> D:\log\appel.log
@echo. >> D:\log\appel.log
@set /a nbFichiers=0
@for %%a in (T:\*.bat) do set /a nbfichiers+=1
@echo Calcule du nombre de fichier(s) Batch: %nbfichiers% >> D:\log\appel.log
@echo. >> D:\log\appel.log
@echo. >> D:\log\appel.log
@echo *******************************appel du fichier test.bat******************************* >> D:\log\appel.log
@echo. >> D:\log\appel.log
Set compteur=0
:newtest
if %compteur% LEQ %nbfichiers% do(
for %%f in (T:\*.bat) do call :process %%f
:process
SET fichier=%1%
echo %fichier% > C:\Users\Administrateur\desktop\rapport.txt
goto newtest)
@start T:\script.bat
@echo appel du fichier test.bat prit en compte >> D:\log\appel.log
@echo. >> D:\log\appel.log
@echo. >> D:\log\appel.log
@timeout 40
@echo *******************************supression emplacement reseau******************************* >> D:\log\appel.log
@echo. >> D:\log\appel.log
@net use * /delete /yes
@echo supression emplacemement reseau traite >> D:\log\appel.log
@echo. >> D:\log\appel.log
@echo. >> D:\log\appel.log
@echo *******************************Suppression des traces******************************* >> D:\log\appel.log
@echo. >> D:\log\appel.log
@rmdir C:\sources\ /s /q
@echo suppression du dossier source traite >> D:\log\appel.log
@echo. >> D:\log\appel.log
@echo. >> D:\log\appel.log
Plus facile sous linux tout ça :=)
Merci d'avance pour votre Aide
Louispeperman
Partager