OVH Cloud OVH Cloud

CMD et boucles IF - commandes BATCH

6 réponses
Avatar
Arnaud
Bonjour a tous,

Je souhaite automatiser une copie de fichiers vers un=20
dossier particulier mais, selon la valeur renvoy=E9e par=20
errorlevel, impossible d'executer une action ou une=20
autre. :'(

Voila une ebauche de mon BATCH:

@echo off
echo .................................................
.................
echo .Assurez vous que le lecteur ZIP soit connecte=20
avant de continuer.
echo .................................................
.................
pause

set cible=3DC:\save

if errorlevel 0 goto stop else goto sauve

:sauve
echo ...........................................
echo .Sauvegarde en cours... Veuillez patienter.
echo ...........................................
xcopy *.XLS /s /i /q /y c:\save
echo ..................................
echo .Sauvegarde des fichiers terminee.
echo ..................................

:stop
echo .................................................
......................
echo .Le lecteur de destination n'a pas ete trouve,=20
Abandon de la procedure.
echo .................................................
......................

Je en comprends pas pourquoi, si l'option "goto stop" de=20
la boucle IF est invalide, il ne passe pas a=20
l'option "goto sauve".

Malgr=E9 la commande "help if" et "help" je ne comprends=20
rien !

Merci de votre analyse du BATCH et de me dire ce qui ne va=20
pas.

6 réponses

Avatar
Georges

Bonjour a tous,

Je souhaite automatiser une copie de fichiers vers un
dossier particulier mais, selon la valeur renvoyée par
errorlevel, impossible d'executer une action ou une
autre. :'(

Voila une ebauche de mon BATCH:

@echo off
echo .................................................
.................
echo .Assurez vous que le lecteur ZIP soit connecte
avant de continuer.
echo .................................................
.................
pause

set cible=C:save
if errorlevel 0 goto stop else goto sauve


Salut,
Moi, ce que je vois pas, c'est pourquoi ces deux lignes !
Cible est inutile.
Errorlevel par rapport à quoi ? à Pause ? Pas sûr que Pause sache
retourner un errorlevel.
Selon moi, mettez ces deux lignes en rem et la sauvegarde démarre.
Ou, si vous êtes sûr de récupérer un errorlevel, alors

If Errorlevel 1 goto Stop

Xcopy ...
Echo Génial, c'est terminé ! Retirez la disquette...

:Stop
Echo Procédure terminée...


Ou alors y a un truc qui m'échappe.
--
Georges (Ne tenez pas compte de l'adresse)

Avatar
Salut,
Moi, ce que je vois pas, c'est pourquoi ces deux lignes !
Cible est inutile.
Errorlevel par rapport à quoi ? à Pause ? Pas sûr que
Pause sache
retourner un errorlevel.
Selon moi, mettez ces deux lignes en rem et la sauvegarde
démarre.
Ou, si vous êtes sûr de récupérer un errorlevel, alors

If Errorlevel 1 goto Stop

Xcopy ...
Echo Génial, c'est terminé ! Retirez la disquette...

:Stop
Echo Procédure terminée...


Ou alors y a un truc qui m'échappe.

Georges (Ne tenez pas compte de l'adresse)

Merci Georges d'avoir regardé mon ebauche de projet :)

Pourquoi cible ? Je ne sais pas non plus ;)
Mais dans "help set" il est dit que la variable renvoit
l'errorlevel 1 si elle existe...
(deja, je suis pas sur de comprendre ca)

Ce que je voudrais surtout, c'est qu'il regarde si le
dossier "C:save" existe ou pas, et a partir de la,
renvoyer un message prédéfini a l'utilisateur.

Si vous avez de meilleurs idées que moi pour construire ce
batch, je suis preneur. ;)
Avatar
Georges

Si vous avez de meilleurs idées que moi pour construire ce
batch, je suis preneur. ;)


Ben, alors, faites un :

if NOT Exist C:save goto ERREUR

Xcopy...

:ERREUR

Enfin, moi, le coup de la variable qui retourne un errorlevel ?
--
Georges (Ne tenez pas compte de l'adresse)

Avatar
Ben, alors, faites un :

if NOT Exist C:save goto ERREUR

Xcopy...

:ERREUR

Enfin, moi, le coup de la variable qui retourne un
errorlevel ?
--
Georges (Ne tenez pas compte de l'adresse)

Merci beaucoup, Georges, Moi qui croyait que EXIST ne
cherchait que des fichiers et pas les répertoires.... LOL

Et voila qui n'a pas fait avencer l'humanité mais moi
OUI ;)

Merci encore :)
Avatar
Clive Lumb
N'oublies pas de "sauter" le message d'erreur pour le cas où ça marche...

if NOT Exist C:save goto ERREUR
Xcopy...
goto FIN

:ERREUR
echo Problème

:FIN


Clive
Avatar
Georges

N'oublies pas de "sauter" le message d'erreur pour le cas où ça marche...

if NOT Exist C:save goto ERREUR
Xcopy...
goto FIN

:ERREUR
echo Problème

:FIN



:-)
Oui, exact !
--
Georges (Ne tenez pas compte de l'adresse)