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] DOS, déplacement de fichier dans une boucle FOR


Sujet :

Scripts/Batch

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut [BATCH] DOS, déplacement de fichier dans une boucle FOR
    Bonjour,

    je dispose de nombreux dossiers, suceptible de contenir des fichiers.
    le batch sera lancé quotidiennement pour vérifier que le traitement qui les a généré s'est bien terminé, et si c'est le cas, on les déplace.

    je suis arrivé a écrire cette ligne qui me semble pas si mal, mais qui ne donne rien

    FOR /F "delims=" %%i in (' type c:\scripts\dir.txt') DO IF EXIST %%i%\BATCH_OK move %%i%\PT_* E:\export\

    le fichier c:\scripts\dir.txt a un contenu du type
    e:\toto\truc\machin
    e:\toto\truc\bidule
    e:\toto\truc\chose
    etc...

    ce que j'aimerai, c'est que la boucle FOR parcours le fichier dir.txt, et si un fichier BATCH_OK existe dans le dossier %%i alors déplace les fichiers PT_* qui se trouvent dans ce dossier.

    quelle est mon erreur ?

  2. #2
    Membre chevronné
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Points : 1 991
    Points
    1 991
    Par défaut
    Bonsoir,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    
    FOR /F "delims=" %%i in (' type c:\scripts\dir.txt') DO IF EXIST %%i%\BATCH_OK move %%i%\PT_* E:\export\
    enlève les % de plus

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Merci.
    J'ai testé, mais sans succès.
    Je suis sous windows 2000 server.
    lorsque j'execute ma commande dans une fenetre cmd, j'ai le message suivant en réponse : "%%i était inattendu."

    edit: correction je viens de découvrir une chose.
    selon que j'execute cette commande, depuis une fenetre cmd, ou depuis un batch, le nombre de % dans %%i n'est pas le meme.
    dans un batch il en faut 2 (%%i) mais en fenetre dos il n'en faut qu'un (%i).
    ca avance.

    edit2:

    j'ai résolu mon problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FOR /F "delims=" %%i in ('type c:\scripts\dir.txt') DO IF EXIST "%%i\BATCH_OK" move "%%i\PT_*" "E:\truc\chose\"

  4. #4
    Membre chevronné
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Points : 1 991
    Points
    1 991
    Par défaut
    bonjour,

    J'ai testé, mais sans succès.

    evidemment, ça ne marche pas dans l'invite, puisque vous n'avez pas mentionné dans votre post que l'execution du code doit être dans le prompt DOS directement..

    essayez de mettre ce code dans un fichier batch et executez-le, ou bien editez-le dans l'invite de commandes directement en enlévant le % de plus

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Je n'ai pas précisé que je lancais direct en ligne de commande c'est bien normal, n'ayant qu'une ligne de code a testé, je trouvais ca plus simple de faire un copier coller depuis le bloc notes, que de rappeller le fichier .bat de test que j' avais fait. Donc, non! pas "evidemment" : quand on connais surement, mais jusqu'a ce matin ce n'était pas mon cas. Je script d'habitude sur AIX et je n'ai jamais eu ce soucis de difference entre script shell (ou fichier batch) et ligne de commande.
    En outre, votre explication, pas agréable a lire, je l'ai trouvé tout seul, cf premier edit que j'ai fait ce matin.

  6. #6
    Membre chevronné
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Points : 1 991
    Points
    1 991
    Par défaut
    je l'ai trouvé tout seul

    eh ban bravo !! c'est la raison des forums de trouver ce qu'on cherche ..tout seul

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Répéter sur un ton hautain ce que j'avai fini par trouvé seul (et que j'avais indiqué en éditant).... ca sert a ca les forums ?
    La courtoisie par contre, c'est utile sur les forums.
    Je vous laisse chercher tout seul comment en faire preuve.

  8. #8
    Membre chevronné
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Points : 1 991
    Points
    1 991
    Par défaut
    La courtoisie par contre, c'est utile sur les forums

    ::

    En outre, votre explication, pas agréable a lire,

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Enregistrer des fichiers dans une boucle
    Par sebastien06 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 05/04/2008, 13h17
  2. [Fortran 77] Renommer un fichier dans une boucle
    Par mehdi_oca dans le forum Fortran
    Réponses: 3
    Dernier message: 04/01/2008, 14h38
  3. Renommer un fichier dans une boucle
    Par Thomas Carrere dans le forum C
    Réponses: 5
    Dernier message: 05/05/2006, 18h20
  4. Réponses: 16
    Dernier message: 25/11/2004, 12h34
  5. [batch] incrémentation dans une boucle for
    Par bart64 dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 08/09/2004, 20h05

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