Création arborescence windows

Résolu
Lostintheshell1 Messages postés 8 Statut Membre -  
barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour à tous,

Je dois dupliquer une arborescence (dossier/sous dossier) remplie de fichier pour en faire un modèle générique. Grâce au forum (merci au passage!) j'ai pu faire un .bat qui m'a listé le contenu de mon dossier. Voici le contenu du .bat:
tree/a>Arbre.txt

J'ai donc un résultat de la forme:
+---3.0 PROJET 1
| +---3.1 CORPORATE, TAX & ACCOUNTING
| | +---3.1.1 CORPORATE
| | | +---3.1.1.2 RMT & CA
| | | \---3.1.1.4 AG
| | | +---3.1.1.4.1 2010
| | | +---3.1.1.4.2 2012
| | | +---3.1.1.4.3 2013
| | | \---3.1.1.4.4 2011
| | +---3.1.2 ACCOUNTING
| | | +---3.1.2.1 2010
| | | +---3.1.2.2 2011
| | | +---3.1.2.3 2012
| | | \---3.1.2.4 2013 Aunaudited financial statements
| | \---3.1.3 TAX

Comment faire maintenant pour créer cette arbo sous windows?

Merci d'avance pour votre aide!!!!!!!!

4 réponses

  1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    Bonjour,

    Si ton but est de dupliquer un dossier (contenant ton arbo...)
    Il suffit d'utiliser XCOPY
    https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-xp/bb491035(v=technet.10)

    1
    1. Lostintheshell1 Messages postés 8 Statut Membre
       
      Attends par contre là tu copie de même tous les fichiers non???
      0
    2. Lostintheshell1 Messages postés 8 Statut Membre
       
      Ok possible de ne pas copier les fichiers avec la clés "/t"
      0
  2. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930
     
    Bonjour,

    C'est beaucoup plus compliqué que ça en a l'air, mais j'ai réussi quand même.
    En admettant que ton fichier arbre.txt se trouve dans un dossier TOTO sur ton bureau, ça donne ça :

    @echo off
    setlocal enableextensions enabledelayedexpansion
    chcp 1252 >nul

    cd /d %USERPROFILE%\Desktop\TOTO || exit /b 1

    set ref=0

    for /f "usebackq skip=3 tokens=* delims=" %%A in ("arbre.txt") do (
    set chaine=%%A
    set pos=0
    if defined chaine (call:check chaine)
    )

    pause
    exit

    :check
    set ligne=!%~1!
    set mark=!ligne:~%pos%,1!

    if "!mark!"=="+" (call:dossier "!ligne!" !pos!)
    if "!mark!"=="\" (call:dossier "!ligne!" !pos!)

    if "!mark!"=="|" (set /a pos+=4 & goto :check)
    if "A!mark!A"=="A A" (set /a pos+=4 & goto :check)

    goto :eof

    :dossier
    set "new="

    if !ref! LSS %2 (set "ref=%2" & cd !name!)
    if !ref! GTR %2 (
    cd ..
    set /a ref-=4
    goto :dossier
    )

    set "ref=%2"
    set new=%1
    set new=!new:^|=#!

    for /f "tokens=1,* delims=-" %%A in (!new!) do (
    set name=%%~B
    echo. & echo Dossier parent : %CD%
    echo Dossier à créer : !name!
    echo. & echo #########################################################################################
    if not exist "!name!" (mkdir "!name!")
    )

    goto :eof

    rem

    Ce script m'a donné un bon mal de crâne ;) ça fume encore

    1
  3. Lostintheshell1 Messages postés 8 Statut Membre
     
    Bonjour,

    Merci pour cette solution que j'utiliserai de façon certaine à l'avenir. Malheureusement dans le cas présent je n'ai plus accès au dossier. Il ne me reste plus que ce fichier txt...
    0
  4. Lostintheshell1 Messages postés 8 Statut Membre
     
    Salut Barnabe0057,

    Sache que t'on mal de crâne n'aura pas été vain!!!!! Je viens de tester et cela fonctionne au poil!

    Je te remercie donc énormément!:-)
    0
    1. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930
       
      De rien ;)

      A bientôt peut-être.
      0