Bach if not exist directory

Résolu/Fermé
Leinox Messages postés 225 Date d'inscription jeudi 5 février 2009 Statut Membre Dernière intervention 2 septembre 2015 - 3 févr. 2014 à 11:49
Leinox Messages postés 225 Date d'inscription jeudi 5 février 2009 Statut Membre Dernière intervention 2 septembre 2015 - 3 févr. 2014 à 13:10
Bonjour,

J'essaye de faire un .bat (mon premier) pour programmer la sauvegarde d'une base de données.

Dans mon batch j'ai besoin de ce bout d'algo :

Si fichier1 n'existe pas passe à la suite
Sinon fichier1 devient fichier2
Recommence le test

Dans mon code j'ai traduis ainsi :



set /a numDirectory=1
:while
if not exist %backupDirectory%%directoryName%%numDirectory% goto end
set /a numFichier=numFichier+1
goto while
:end


Mon problème est que ce script renvoie toujours la même chose : Le chemin d'accès spécifié est introuvable. Et il boucle à l'infini.

C'est bien que ce soit introuvable, mais alors qu'il passe à la suite !
D'autant que pour tester je dispose de deux fichiers existant et il ne semble pas les trouver.

Lorsque je retire le "not" de "if not exist" je n'ai pas de message d'erreur... par contre je boucle de nouveau à l'infini... fichier1 2 3 4 etc...

Je ne comprend pas... le batch as une fonction pour ne pas sortir des boucles de conditions ?

2 réponses

dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
3 févr. 2014 à 12:19
hello
si il y a des espaces dans le nom, mettre des "
"%backupDirectory%%directoryName%%numDirectory%"
0
Leinox Messages postés 225 Date d'inscription jeudi 5 février 2009 Statut Membre Dernière intervention 2 septembre 2015 29
3 févr. 2014 à 13:10
Merci Dubcek !

Pas d'espace dans le chemin, mais je viens de régler mon problème (en ajoutant des double quote tout de même dans le doute ^^)



set /a numDirectory=0
:while
set /a numDirectory=numDirectory+1
if exist "%backupDirectory%%directoryName%%numDirectory%\*.*" goto :while
goto :end
pause
:end
0