Création de plusieurs répertoires avec variables

Fermé
bigbib Messages postés 3 Date d'inscription dimanche 12 août 2012 Statut Membre Dernière intervention 24 août 2015 - 20 août 2015 à 08:54
bigbib Messages postés 3 Date d'inscription dimanche 12 août 2012 Statut Membre Dernière intervention 24 août 2015 - 24 août 2015 à 11:45
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


A voir également:

2 réponses

dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
20 août 2015 à 10:09
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
bigbib Messages postés 3 Date d'inscription dimanche 12 août 2012 Statut Membre Dernière intervention 24 août 2015
24 août 2015 à 09:49
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
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
24 août 2015 à 10:47
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
bigbib Messages postés 3 Date d'inscription dimanche 12 août 2012 Statut Membre Dernière intervention 24 août 2015
24 août 2015 à 11:45
Merci dubcek ;-)
0