.bat qui creer des dossier

Résolu/Fermé
mrizzx Messages postés 9 Date d'inscription jeudi 5 décembre 2013 Statut Membre Dernière intervention 25 décembre 2016 - 25 déc. 2016 à 18:45
mrizzx Messages postés 9 Date d'inscription jeudi 5 décembre 2013 Statut Membre Dernière intervention 25 décembre 2016 - 25 déc. 2016 à 19:33
Bonjour,

J'ai fait un petit programme qui créer des fichier numéroté "Data1","Data2" etc..
En gros je vous explique : Le programme va vouloir créer un dossier de base Data0, et a chaque fois que je relance le programme, il va vouloir le recréer, sauf qu'il existe déjà, j'ai donc fait un petit test de condition, si le dossier existe, alors il va continuer à incrémenter jusqu'a "dataN" puis va créer le dossier "DataN", voici mon code, il ne marche pas...

set i=0

:test
if exist Data%i%( GOTO Incr )
GOTO creation

:Incr
set /a i=%i%+1
GOTO test

:creation
mkdir Data%i%


j'ai l'impression qu'il ne reconnait pas la condition if exist DataRecup%i%, le %i% pause problème

je débute dans le language batch.. savez vous pourquoi mon programme ne marche pas ?

Merci d'avance
A voir également:

4 réponses

jee pee Messages postés 39578 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 16 avril 2024 9 221
Modifié par jee pee le 25/12/2016 à 18:58
Bonjour,

En fait
if exist
teste l’existence d'un fichier pas d'un répertoire.

L'astuce c'est de faire
if exist Data%i%\NUL (GOTO Incr  )
, NUL étant un fichier qui existe sous chaque répertoire.

cdlt
        un étranger, c'est un ami qu'on n'a pas encore rencontré.
0
mrizzx Messages postés 9 Date d'inscription jeudi 5 décembre 2013 Statut Membre Dernière intervention 25 décembre 2016
25 déc. 2016 à 19:15
Bonne astuce, mais ca ne marche toujours pas... Il ne détecte pas la condition... le fait de verifier un nom de dossier via une variable pause problème je pense..
0
jee pee Messages postés 39578 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 16 avril 2024 9 221
25 déc. 2016 à 19:10
chez moi ça marche ;-)

mais il faut lancer le .cmd depuis une fenetre dos, pas cliquer le .cmd, ou alors, pour cliquer dessus il faut mettre le chemin complet d'accès au répertoire C:\temp\... \test
0
mrizzx Messages postés 9 Date d'inscription jeudi 5 décembre 2013 Statut Membre Dernière intervention 25 décembre 2016
25 déc. 2016 à 19:25
Fait, ne fonctionne pas voici mon code exact :


voici ce que ca donne lorsque j'execute via l'invite de commande :

0
mrizzx Messages postés 9 Date d'inscription jeudi 5 décembre 2013 Statut Membre Dernière intervention 25 décembre 2016
25 déc. 2016 à 19:33
AH ! J'ai trouvé tout seul... je ne savais pas que la syntaxe etait sensible aux espaces ! Donc
if exist DataRecup%i%\NUL( GOTO Incr )
DEVIENT
if exist DataRecup%i%\NUL (GOTO Incr )

Voilà, merci !
0