Création de plusieurs répertoires avec variables

bigbib Messages postés 3 Statut Membre -  
bigbib Messages postés 3 Statut Membre -
Bonjour tout le monde,

je voudrais créer plusieurs répertoires (plus de 20000 au final) mais avec variables (de / à)

et avec mise en formes (toujours en 8 chiffres ex: 00000012 )

voici mon problème,

je ne vois comprend pas comment placer les conditions


cls

set /p de=Numéro du 1er répertoire à créer: 
set /a de=%de%

set /p aa=Numéro du dernier répertoire à créer: 
set /a aa=%aa%

REM echo REP A CREER DE:
REM echo %de% A %aa%


PAUSE



FOR /L %%N IN (%de%,1,%aa%)do ( goto :win01 )


:win01

if %%N GEQ 10 goto :WIN10

mkdir 0000000%%N

goto :start 



:WIN10

if %%N GEQ 100 goto :WIN100

mkdir 000000%%N

goto :start 



:WIN100

if %%N GEQ 1000 goto :WIN1000

mkdir 00000%%N

goto :start 



:WIN1000

if %%N GEQ 10000 goto :WIN10000

mkdir 0000%%N

goto :start 



:WIN10000

mkdir 000%%N

goto :start 





Merci d'avance pour votre aide

2 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    autre méthode, ajouter 100000000 et enlever le 1
    C:> set x=12
    C:> set /a x+=100000000
    100000012
    C:> echo %x:~1,10%
    00000012

    C:> set x=1234
    C:> set /a x+=100000000
    100001234
    C:> echo %x:~1,10%
    00001234
    1
  2. bigbib Messages postés 3 Statut Membre
     
    désolé pour le retard,
    merci dubcek pour ton aide.
    Maintenant, mon problème est d'insérer ton code dans une boucle pour renommer tous les répertoires ayant un "1" en premier caractère.
    J'ai essayé de plusieurs manières et c'est à croire que "IF" n'a aucun effet ans "FOR"



    cls
    color b

    echo.
    echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
    echo º CREATION DE REPERTOIRES en 8 chiffres º
    echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
    echo.
    echo.
    echo.

    goto start

    :start

    set de=
    set /p de=NUMERO DU 1ER REP A CREER :
    set /a de+=100000000
    set /a de2=%de%
    echo.
    echo.
    set a=
    set /p a=NUMERO DU DERNIER REP A CREER :
    set /a a+=100000000
    set /a a2=%a%

    echo.
    echo.
    echo.
    echo.
    echo CONFIRMATION DE LA CREATION DES REPERTOIRES
    echo ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
    echo.
    echo DU NUM. %de2:~1% AU NUM. %a2:~1%
    echo ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
    echo.
    echo.
    echo.

    Goto conf

    :conf
    set %confirmation=
    set /p confirmation=VOUS CONFIRMEZ? (O)ui/(N)on:
    IF "%confirmation%"=="O" (
    goto action
    ) ELSE (
    IF "%confirmation%"=="o" (
    goto action
    ) ELSE (
    IF "%confirmation%"=="N" (
    goto start
    ) ELSE (
    IF "%confirmation%"=="n" (
    goto start
    ) ELSE (
    echo.
    goto conf2
    echo.
    ))))

    :conf2
    echo.
    echo ECRIVEZ "O" ou "N"
    echo.
    echo.
    goto conf

    :action
    setlocal enableDelayedExpansion
    FOR /L %%N IN (%de%,1,%a%)do (mkdir %%N)

    FOR /D %%V IN (*) DO (
    set dir=%%v

    REM ***** La partie ou je rame !!! ******

    IF "%dir:~0,1%"=="1" ( ren %dir% %dir:~1,10% )

    )

    :fin

    if %errorlevel% == 0 (
    echo.
    echo.
    echo CREATION DES REPERTOIRES DE %de2:~1% A %a2:~1% TERMINEE
    echo ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
    echo.
    echo.
    )

    0
    1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
       
      mon code doit se mettre dans la boucle
      @echo off
      setlocal enabledelayedexpansion
      set /p de=debut ?
      set /p a=fin ?
      for /L %%a in (%de%, 1, %a%) do (
      set n=%%a
      set /a n+=100000000
      set n=!n:~1,10!
      echo mkdir !n!
      )
      0
    2. bigbib Messages postés 3 Statut Membre
       
      Merci dubcek ;-)
      0