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 :

Manipulations de dossier


Sujet :

Scripts/Batch

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Manipulations de dossier
    Bonjour à tous

    Je bidouille depuis un bon moment pour créer un mini programme qui va automatiquement :

    - lister le contenu d'un répertoire donné (fixe) avec ses sous-dossiers
    - exporter l'arborescence en modifiant les paths pour avoir des chemins relatifs

    En faisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dir \\monServeur\monChemin\dossierPrincipal\ /b /s /A:-D > fichier.txt
    Ca exporte:
    \\monServeur\monChemin\dossierPrincipal\dossier1\fichier1.ext
    \\monServeur\monChemin\dossierPrincipal\dossier1\fichier2.ext
    \\monServeur\monChemin\dossierPrincipal\dossier2\fichier3.ext

    Je cherche à n'avoir que:
    dossier1/fichier1.ext
    dossier1/fichier2.ext
    dossier2/fichier3.ext
    (avec les slashs à la place des anti-slash, pour avoir un path compatible web)

    ou mieux encore, avoir une structure formatée xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <root>
      <folder name="dossier1">
        <file name="fichier1.ext"/>
        <file name="fichier2.ext"/>
      </folder>
      <folder name="dossier2">
        <file name="fichier3.ext"/>
      </folder>
    </root>
    J'ai cherché un moyen de faire un search & replace, mais je n'ai pas trouvé en commandes DOS pures...
    (mes connaissances dans ce domaine étant comparables au QI de thierry roland)(quasi-nulles)

    L'idée est qu'en lançant un fichier.bat, le fichier soit généré automatiquement sans intervention de l'utilisateur.

    Merci de votre aide !

  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
    salut,

    une chose du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    @Echo off 
    (
    echo ^<root^>
    for /f "delims=" %%a In ('dir "\\monServeur\monChemin\dossierPrincipal\" /b /s /A:-D') do (
      for %%i In ("%%~dpa.") do (
        echo ^<folder name="%%~nxi"^>
        echo ^<file name="%%~nxa"/^>
        echo ^</folder^>
        )
     )
    echo ^</root^>
    )>> fichier.xml

  3. #3
    Membre émérite Avatar de Drizzt [Drone38]
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2004
    Messages
    1 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 001
    Points : 2 453
    Points
    2 453
    Par défaut
    I'm_HERE, ta solution ne permet pas d'avoir l'arborescence souhaitée, dans ton cas tu n'as qu'un seul élément par balise folder qui se vois repetée pour chaque fichier.

    La variante qui suit fonctionne tant qu'il n'y a qu'un niveau de sous-repertoire.
    Tu peux facilement ajouter les fichiers du repertoire courant si tu le souhaites aussi.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    @Echo off 
    (
    echo ^<root^>
    for /f "delims=" %%a In ('dir "\\monServeur\monChemin\dossierPrincipal\" /b /s /A:D') do (
      echo ^<folder name="%%~nxa"^>
      for /f "delims=" %%i In ('dir "\\monServeur\monChemin\dossierPrincipal\%%~nxa" /b /s /A:-D') do (
        echo ^<file name="%%~nxi"/^>
      )
      echo ^</folder^>
     )
    echo ^</root^>
    )> fichier.xml

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Wah merci !

    Le hic, si on a une arbo de ce type :
    folder1
    - file1.ext
    - file2.ext
    - subFolder1
    - file3.ext
    folder2
    - file4.ext

    il va exporter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <folder name="folder1">
    <file name="file1.ext"/>
    </folder>
    <folder name="folder1">
    <file name="file2.ext"/>
    </folder>
    <folder name="subFolder1">
    <file name="file3.ext"/>
    </folder>
    <folder name="folder2">
    <file name="file4.ext"/>
    </folder>
    Si bien qu'on n'a pas de notion d'arborescence.
    Mais ca risque de faire imbriquer des boucles, ca, non ?
    Merci encore

  5. #5
    Membre émérite Avatar de Drizzt [Drone38]
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2004
    Messages
    1 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 001
    Points : 2 453
    Points
    2 453
    Par défaut
    Voila une solution qui fonctionne avec les sous repertoires :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    @Echo off 
    setlocal
    
    (
    echo ^<root^>
    call :action "\\monServeur\monChemin\dossierPrincipal\"
    echo ^</root^>
    ) > fichier.xml
    
    goto :EOF
    
    :action
    set chemin=%1
    set chemin=%chemin:"=%
    for /f "delims=" %%i In ('dir "%chemin%" /b /A:-D') do (
    echo ^<file name="%%~nxi"/^>
    )
    for /f "delims=" %%a In ('dir "%chemin%" /b /A:D') do (
      echo ^<folder name="%%~nxa"^>
      call :action "%chemin%\%%a"
      echo ^</folder^>
     )
    goto :EOF

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    MILLE MERCIS !!

    bravo !

  7. #7
    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
    Citation Envoyé par Drizzt [Drone38] Voir le message
    I'm_HERE, ta solution ne permet pas d'avoir l'arborescence souhaitée, dans ton cas tu n'as qu'un seul élément par balise folder qui se vois repetée pour chaque fichier.
    t'as tout à fait raison.

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

Discussions similaires

  1. Guide ou lazy pour le Manipulation de dossier dans outlook
    Par metramo dans le forum VBA Outlook
    Réponses: 0
    Dernier message: 01/08/2014, 09h02
  2. Manipulation de dossier
    Par infdunord dans le forum C#
    Réponses: 3
    Dernier message: 27/05/2011, 11h49
  3. Manipulation de dossiers
    Par Atharendil dans le forum C++
    Réponses: 3
    Dernier message: 25/01/2008, 20h15
  4. manipuler les dossier en c++ sous unix
    Par sefir dans le forum C++
    Réponses: 4
    Dernier message: 18/12/2007, 20h11
  5. Manipulation des fichiers / dossiers
    Par Gibou dans le forum C++
    Réponses: 6
    Dernier message: 23/06/2006, 15h53

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