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_ajouter une boucle for


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2018
    Messages : 2
    Par défaut Batch_ajouter une boucle for
    Bonjour la communauté !
    Je viens vers vous pour demander un petit peu d'aide, j'ai un code qui dézippe des fichiers rangés et me fait quelques petits traitements derrière.
    Il va dans mlon espace de travail (Workspace=...com-054), ouvre chaque sous-dossier et dézippe dedans tout fichier zip présent.
    Mon code se présente comme ceci:
    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    @echo on
    setlocal enableextensions
     
    set WORKSPACE=C:\test\com\com-054
    cd /d %WORKSPACE%
     
    for /f "tokens=*" %%B in ('dir /b /ad "%WORKSPACE%"') do (
        for /f "tokens=*" %%G in ('dir "%%~dpnB" /b /a-d') do (
            MKDIR %WORKSPACE%\%%B\TAR
            call "C:\Program Files\7-Zip\7z.exe" e %%~dpnB\%%G -o%WORKSPACE%\%%B\TAR\ -r
    )
    pause
    Endlocal
    exit
    Je voudrai faire démarrer mon code au niveau du dossier "C:\test\com" de sorte à le faire traiter tous les autres dossiers (genre com-055, com-056, com-057...)
    Seulement j'ai fait plusieurs tests et je n'y arrive pas. Voici mon dernier essai:
    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    @echo on
    setlocal enableextensions
     
    set WORKSPACE=C:\test\com
    cd /d %WORKSPACE%
    for /f "tokens=*" %%A in ('dir /b /ad "%WORKSPACE%"') do (
        for /f "tokens=*" %%B in ('dir /b /ad "%%A"') do (
            for /f "tokens=*" %%G in ('dir "%%~dpnB" /b /a-d') do (
                MKDIR %WORKSPACE%\%%B\TAR
                call "C:\Program Files\7-Zip\7z.exe" e %%~dpnB\%%G -o%WORKSPACE%\%%B\TAR\ -r
    ))
    pause
    Endlocal
    exit

    ça ne fonctionne pas, le script s'arrete en me disant "fichier introuvable", j'ai du faire une boulette mais je ne la vois pas.....
    quelqu'un aurait une idée?

    au passage: c'est un script que j'ai récupéré et modifié et je n'arrive pas à trouver ce que veut dire "/a-b", quelqu'un sait?
    Merci d'avance

  2. #2
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2018
    Messages : 2
    Par défaut je bloque !
    alors? personne n'as de réponse?

  3. #3
    Membre Expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Par défaut
    salut,

    Je pense que tu peux simplifier to code !

    l'idee :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    @echo off
    set WORKSPACE=C:\test\com\com-054
    
    for /f "delims=*" %%A in ('dir /s "WORKSPACE"\*.zip') do (
                echo MKDIR "%%~dpATAR"
                echo call "C:\Program Files\7-Zip\7z.exe" e %%~dpnxA -o %%~dpnATAR\ -r
    )
    fait un test ! si la sortie des chemins est ok retire les 2 echo


Discussions similaires

  1. Shell - Erreur dans une boucle for
    Par claralavraie dans le forum Linux
    Réponses: 4
    Dernier message: 11/01/2006, 13h45
  2. : remplir des zones de texte avec une boucle For
    Par Haro_GSD dans le forum Access
    Réponses: 3
    Dernier message: 20/09/2005, 21h23
  3. Problème avec une DLL dans une boucle For
    Par BraDim dans le forum Langage
    Réponses: 5
    Dernier message: 20/09/2005, 12h22
  4. [batch] incrémentation dans une boucle for
    Par bart64 dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 08/09/2004, 20h05
  5. Réponses: 3
    Dernier message: 06/07/2004, 10h21

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