beliebig viele ordner mit batch erstellen und umbenennen ?

crazymischl

Erfahrenes Mitglied
Hi erstma.
ich hab volgendes problem:
Ich möchte x-beliebig viel (soll man nacher eingeben können) ordner erstellen lassen und diese dann mit 01,02,03,... benennen. Also quasi soll in der batch dann folgendes passieren: ich kann eingeben z.B. 15 und dann werden automatisch die Ordner mit den Namen 01, 02, 03,..,15 erstellt sodass ich dann 15 ordner habe.
1.) geht das überhaupt dass ich das so eingeben kann mit batch? :confused:
2.) wenn ja wie sieht das aus (sry bin leider noch total anfänger und habe bis jetzt noch kein tut gefunden wo das steht)

ich hab schon folgendes einzeln erfolgreich getestet:

1.) Ordner erstellen: (erstellt den ordner mit namen 01)
@ECHO off
mkdir 01

und 2.) Ordner mit beliebigem namen erstellen (erstellt dann den ordner mit dem namen wo ich eingeben kann)
@ECHO OFF
SET /P Ordnernamen1=Bitte Daten eingeben...
mkdir %Ordnernamen1%

wie baue ich das jetzt noch um dass das wie oben beschrieben geht ? :rolleyes:

Schon mal vielen dank für eure hilfe,:)
Michi.
 
hm weiß niemand ne antwort?

ich weiß ja wie ich das von hand mache mit choice und dann jeweils aufschreiben if errorlevel 3 go to ordner3 und da dann mkdir 01 mkdir 02 mkdir 03
nur ich sollte das halt mit ca. 15.600 ordner machen und das von hand aufschreiben isn bissle lang :rolleyes: da wäre halt beliebig viel schon gut :)
naja ich warte mal noch villeicht fällt ja jemand noch was ein schon ma danke wenn jemand noch was weiß :) mfg michi
 
Hi.

Dafür gibt es die FOR Schleife. Siehe "help for".

Gruß

Erstma danke für deine antwort
Nach paar stunden googeln und lesen hab ich folgendes geschrieben:

1.) Datei mit der FOR-Schleife
@echo off
set /P anzahl=wieviele ordner sollen erstellt werden?
for /L %%a in (1,1,%anzahl%) do mkdir %%a

//nützt auch nich wenn ich for /L %%a in (0001,0001,%anzahl%)... schreibe :mad:

und 2.) Datei mit If-:
@echo off
set /p j=Wie viele Ordner sollen erstellt werden?
set i=1
set /A j=j+1
goto start
:START
mkdir %i%
set /A i=i+1
if %i%==%j% (exit)
goto :START

Diese 2 dateien funktionieren auch wunderbar (bis auf das wenn man bei der 2ten nen buchstaben eingibt der combi ca. tausende ordner erstellt aber egal nur als hinweis :) )
NUR:
Wenn ich sage ich will 5 ordner erstellen dann erstellen beide dateien die Ordner 1,2,3,4,5
Ich für meine zwecke brauche die Ordner mit den namen
00(000..)1
00(000..)2
00(000..)3
00(000..)4
00(000..)5

(am besten währe es batch würde von der gesamtzahl der ordner selbst erkennen, wieviel Nullen es vorne hin machen muss: z.B. ich gebe gesamtzahl 12345 ein also Ordner 00001,00002..).

Wie mache ich das,dass es die ordner mit beliebig viel Nullen abhängig eben von der gesamtzahl erstellt?

@danke schon ma für Hilfe oder tipps/links
mfg,Michi
 
Hm also nen bissle weiter bin ich gekommen bräuchte nur noch nen kleinen Tipp:
Wie mach ich eine verkettung von if-prüfungen:
also erfüllt die zahl bedingung1 und bedingung2
also so: if bedingung1 und bedingung2 =zahl
ich möchte das so verwenden:
z.B. größer als 10 (=bedingung1) und kleiner als 100 (=bedingung2)= z.B. 57 ,
da z.B. 57 nach Adam Rieße eben größer 10 und kleiner 100 ist und so beide (bedingung1 und 2) erfüllt!
> if zahl größer zehn und zahl kleiner 100 dann führe befehl aus (goto 99).

wie lautet nun die Verkettung?
if %zal% GEQ 10 Verkettung if %zahl% LSS 100 Führe befehl aus (goto 99)

Dieser Tipp würde mich zur fertigstellung bingen also schon ma very thx wenn´s jemand sagen kann :)

mfg,Michi
 
OK nach mehreren stunden googeln und gutem Kaffee hab ich selber fertiggekriegt :)
Zwar ziemlich umständlich aber is gut jetzt. Nochma danke an deepthroat dein tipp hat mir sehr geholfen :) von mir aus kann man hier schließen.
Wer die batch haben will email an PN an mich :) cu,michi.
 
Zuletzt bearbeitet:
Probiers mal mit diesem Batch Code aus:

Code:
@echo off

rem Konfiguration des Zielverzeichnisses
rem ------------------------------------
set TARGETDIR=C:\temp
rem ------------------------------------


rem Eingabe der Anzahl der Verzeichnisse
rem ------------------------------------
rem set /P Laenge=Eingabe: 
set /P MAX=Eingabe Max Nummer:
rem ------------------------------------

:step1
rem Laenge von max ermitteln
rem ------------------------------------
set lenmax=0
set dump=%MAX%
:len1
if %dump% NEQ 0 (
	set /a dump=%dump%/10
	set /A lenmax=%lenmax%+1
	goto len1
) ELSE (
	goto step2
)
rem ------------------------------------
:step2


rem temporaere Variable mit Nullen erzeugen
rem ------------------------------------
set ZEROS=
setlocal ENABLEDELAYEDEXPANSION

for /L %%i in (1,1,%lenmax%) do (
	set ZEROS=!ZEROS!0
)
rem ------------------------------------

rem Verzeichnis wechseln
rem ------------------------------------
pushd %TARGETDIR%
rem ------------------------------------

rem Erstellen der Verzeichnisse
rem ------------------------------------
set counter=1
set /a MAX=%MAX%+1
:step3
if %counter% NEQ %MAX% (
	set lentemp=0
	set dump2=%counter%
	:len2
	if !dump2! NEQ 0 (
		set /a dump2=!dump2!/10
		set /a lentemp=!lentemp!+1
		goto len2
	)
	set /a nozeros=%lenmax%-!lentemp!
	mkdir !ZEROS:~0,%nozeros%!%counter%
	set /a counter=!counter!+1
	goto step3	
) 
rem ------------------------------------

Einfach in eine .bat Datei kopieren oben das Zielverzeichnis ändern (Muss existieren!) und starten.

Habs nur auf nem Windows 2000 getestet, aber auf WinXP sollte es auch gehen.

EDIT: na da war ich zu spät
 
Probiers mal mit diesem Batch Code aus:

Code:
@echo off

rem Konfiguration des Zielverzeichnisses
rem ------------------------------------
set TARGETDIR=C:\temp
rem ------------------------------------


rem Eingabe der Anzahl der Verzeichnisse
rem ------------------------------------
rem set /P Laenge=Eingabe: 
set /P MAX=Eingabe Max Nummer:
rem ------------------------------------

:step1
rem Laenge von max ermitteln
rem ------------------------------------
set lenmax=0
set dump=%MAX%
:len1
if %dump% NEQ 0 (
	set /a dump=%dump%/10
	set /A lenmax=%lenmax%+1
	goto len1
) ELSE (
	goto step2
)
rem ------------------------------------
:step2


rem temporaere Variable mit Nullen erzeugen
rem ------------------------------------
set ZEROS=
setlocal ENABLEDELAYEDEXPANSION

for /L %%i in (1,1,%lenmax%) do (
	set ZEROS=!ZEROS!0
)
rem ------------------------------------

rem Verzeichnis wechseln
rem ------------------------------------
pushd %TARGETDIR%
rem ------------------------------------

rem Erstellen der Verzeichnisse
rem ------------------------------------
set counter=1
set /a MAX=%MAX%+1
:step3
if %counter% NEQ %MAX% (
	set lentemp=0
	set dump2=%counter%
	:len2
	if !dump2! NEQ 0 (
		set /a dump2=!dump2!/10
		set /a lentemp=!lentemp!+1
		goto len2
	)
	set /a nozeros=%lenmax%-!lentemp!
	mkdir !ZEROS:~0,%nozeros%!%counter%
	set /a counter=!counter!+1
	goto step3	
) 
rem ------------------------------------

Einfach in eine .bat Datei kopieren oben das Zielverzeichnis ändern (Muss existieren!) und starten.

Habs nur auf nem Windows 2000 getestet, aber auf WinXP sollte es auch gehen.

EDIT: na da war ich zu spät

Trotzdem noch ma danke ich probiers auch gleich mit dieser thx :)
 
Zurück