rem -----------------------------------------------------------------------
rem | Batch de création d'arborescence de dossiers de révision comptable  |
rem |                                                                     |
rem | v1.0 06/2023                                                        |
rem | Plus d'infos : www.auditsi.eu                                       |
rem -----------------------------------------------------------------------

rem -----------------------------------------------------------------------
rem Déclaration des variables
rem ---Chemin d'accès où créer l'arborescence
set chemin=C:\TESTS\DOSSIERS DE REVISION\2023-12-31
rem ---Liste des entités (1er niveau de sous-dossiers)
set tableau_entites=("AMC" "AOA" "AOL" "APA14" "BCO" "DAC" "FFM" "FMD" "GIEMS" "HFM" "IPCO" "KTM" "LEM" "LOGAUT" "MAB" "MAC" "MACH" "MACN" "MACS" "MAD")
rem ---Liste des cycles comptables (2ème niveau de sous-dossiers)
set tableau_cycles=("A-REGULARITE FORMELLE" "B-VENTES - CLIENTS" "C-STOCKS ET ENCOURS" "D-IMMOBILISATIONS" "E-DISPONIBILITES - PLACEMENTS - FINANCEMENT" "G-ACHATS - FOURNISSEURS" "H-SOCIAL" "J-FONDS PROPRES - PROVISIONS" "L-FISCAL" "M-AUTRES COMPTES" "Z-INTERCOMPAGNIES")

rem Autorise l'affichage des accents
chcp 65001 > nul

rem Désactive l'affichage des fonctions en cours d'exéction
@echo off

rem Efface le contenu de l'écran
cls

echo --------------------------------------------------------------
echo Création de l'arborescence des dossiers de révision comptable
echo --------------------------------------------------------------
echo.

rem Boucles compteur de création de l'arborescence
rem ---la 1ère boucle crée les sous-dossiers entités
for %%s in %tableau_entites% do (
    rem la 2ème boucle crée les sous-dossiers cycles
    for %%c in %tableau_cycles% do (
        setlocal enabledelayedexpansion
        set "entite=%%~s"
        set "cycle=%%~c"

	rem mkdir ou md : crée un dossier ; 2>nul -> désactive l'affichage des messages d'erreur (STDERR = 2 Error text output)
        mkdir "%chemin%\!entite!\!cycle!" 2>nul

	rem Affichage d'un message personnalisé en cas d'erreur
        if errorlevel 1 (
            echo Erreur lors de la création du dossier "%chemin%\!entite!\!cycle!".
        ) else (
            echo Dossier "%chemin%\!entite!\!cycle!" créé avec succès.
        )
        endlocal
    )
)

echo Opérations terminées
pause