IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

[Batch MS-DOS] Sortir d'une boucle For / Lister les fichiers d'un repertoire


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 11
    Par défaut [Batch MS-DOS] Sortir d'une boucle For / Lister les fichiers d'un repertoire
    Bonjour

    Je suis en train d'écrire un script Batch MS-DOS
    J'aimerais savoir comment sortir d'une boucle FOR sans utiliser de GOTO que je trouve impropre ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for %%A in (C:\*) do ( 
    .....
    if %%A= C:\test.txt Goto Sorti 
    ) 
    :SORTI
    Savez vous s'il existe une autre méthode pour lister les fichier d'un répertoire.
    J'ai penser à rediriger la commande mais je ne sais pas comment faire ...

    Merci de m'aider ..

  2. #2
    Membre chevronné Avatar de J.Michel
    Inscrit en
    Septembre 2007
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 62

    Informations forums :
    Inscription : Septembre 2007
    Messages : 279
    Par défaut
    Citation Envoyé par touns390 Voir le message
    J'aimerais savoir comment sortir d'une boucle FOR sans utiliser de GOTO que je trouve impropre ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for %%A in (C:\*) do ( 
    .....
    if %%A= C:\test.txt Goto Sorti 
    ) 
    :SORTI
    Personellement je ne connaît pas d'autre méthode sous DOS

    Citation Envoyé par touns390 Voir le message
    Savez vous s'il existe une autre méthode pour lister les fichier d'un répertoire.
    J'ai penser à rediriger la commande mais je ne sais pas comment faire ...
    Essaye

  3. #3
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 11
    Par défaut
    Citation Envoyé par J.Michel Voir le message
    Personellement je ne connaît pas d'autre méthode sous DOS



    Essaye
    oui je sais rediriger dans un fichier texte, mais c'est le traitement après que je ne sais pas faire.

    Merci de votre réponse

  4. #4
    Membre chevronné Avatar de J.Michel
    Inscrit en
    Septembre 2007
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 62

    Informations forums :
    Inscription : Septembre 2007
    Messages : 279
    Par défaut
    Citation Envoyé par touns390 Voir le message
    oui je sais rediriger dans un fichier texte, mais c'est le traitement après que je ne sais pas faire.
    Mais quel traitement souhaites tu faire ?

  5. #5
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 11
    Par défaut
    Citation Envoyé par J.Michel Voir le message
    Mais quel traitement souhaites tu faire ?
    je souhaiterais traiter fichier par fichier et m'arrêter quand j'arrive sur le bon (sortir de la boucle)

    Et j'aurais une deuxième question, si tu sais, cela m'aiderais beaucoup :

    j'ai ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    setlocal enableDelayedExpansion
    for %%D in (c:\Mon_dossier\*) do (
    set Fichier = %%nxD
    rename !Fichier! !Fichier:~0,8!
    echo !Fichier!
    )
    endlocalSerait
    je ne comprend pas pourquoi ca ne marche pas avec le RENAME
    mais cela marche avec ECHO

    merci de ton aide

  6. #6
    Membre chevronné Avatar de J.Michel
    Inscrit en
    Septembre 2007
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 62

    Informations forums :
    Inscription : Septembre 2007
    Messages : 279
    Par défaut
    Citation Envoyé par touns390 Voir le message
    je souhaiterais traiter fichier par fichier et m'arrêter quand j'arrive sur le bon (sortir de la boucle)
    Dans ce cas ton premier exemple me semble le mieux adapté

    Citation Envoyé par touns390 Voir le message
    j'ai ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    setlocal enableDelayedExpansion
    for %%D in (c:\Mon_dossier\*) do (
    set Fichier = %%nxD
    rename !Fichier! !Fichier:~0,8!
    echo !Fichier!
    )
    endlocal
    je ne comprend pas pourquoi ca ne marche pas avec le RENAME
    mais cela marche avec ECHO
    merci de ton aide
    Chez moi rien ne marche.
    De plus, j'avoue que là ça dépasse mes compétences en DOS (Je ne connais même pas l'utilisation du !)
    Je laisse donc à d'autres plus qualifiés le soin de résoudre ce problème (Désolé)

Discussions similaires

  1. Sortir d'une boucle for avant la fin
    Par sandball22 dans le forum C
    Réponses: 4
    Dernier message: 17/05/2011, 14h00
  2. [PHP 5.3] Comment sortir d'une boucle for en PHP ?
    Par beegees dans le forum Langage
    Réponses: 2
    Dernier message: 28/12/2009, 20h36
  3. [LV8.2] Sortir d'une boucle for principale
    Par GunNm99 dans le forum LabVIEW
    Réponses: 5
    Dernier message: 26/06/2009, 10h19
  4. sortir d'une boucle FOR
    Par Cheorches dans le forum VB.NET
    Réponses: 6
    Dernier message: 08/08/2007, 14h37
  5. Sortir d'une boucle for
    Par gids01 dans le forum Langage
    Réponses: 9
    Dernier message: 14/11/2006, 15h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo