Wie Ordner und fortlaufend nummerierte Unterordner aus Text mit Batch erstellen?
Hallo Zusammen,
leider bin ich kein Script Fachmann, aber muss mich hier einer Aufgabe stellen.
Ich muss/will mit einer Batch (.bat) Datei aus einer Text (.txt) Datei viele viele Ordner mit fortlaufenden Unterordnern erstellen.
Das ganze soll dann folgendermaßen aussehen.
Text:
zBsp:
1. Name/Zeile aus Text Anna Anreim
2. Name/Zeile aus Text Betti Bruns
3. Name/Zeile aus Text Conny Clon
Ordner: Jeweils ein Namensordner mit 50 Unterordner mit Namen und Nummerierung.
Anna Anreim\Anna Anreim 01
bis
Anna Anreim\Anna Anreim 50
Betti Bruns\Betti Bruns 01
bis
Betti Bruns\Betti Bruns 50
Conny Clon\Conny Clon 01
bis
Conny Clon\Conny Clon 50
Die Ordnernamen sollen aber schon mit Leerzeichen (Anna Anreim 01)
und nicht mit Unterstricht (Anna_Anreim_01) benannt sein.
Ich habe bereits eine Befehlszeile gefunden die mir meine Ordner mit Namen erstellt.
Diese liest mir aus meiner ordnername.txt auch meine Namen aus und erstellt mir die Ordner.
Meiner Ansicht nach funktioniert das leider nur mit Unterstrich, aber nicht mit Leerzeichen.
for /f "tokens=1" %%a in (ordnername.txt) do mkdir %%a
und auch eine Methode die mir im gleichen Ordner fortlaufend durchnummerierte Ordner erstellt,
aber eben nicht in den Ordnern, die aus der Textdatei erstellt wurden, aber dafür funktioniert
es so auch mit Leerzeichen.
@echo OFF
SET N=1
:SCHLEIFE
IF %N%==51 GOTO ENDE
MD "Anne Anreim "%N%
SET /A N=%N%+1
GOTO SCHLEIFE
:ENDE
@echo ON
EXIT
bzw. auch diese hier
for /l %%i in (1,1,50) do mkdir "Anna Anreim "%%i
Die Namen für die Unterordner sollen aber auch alle aus dem Text übernommen
und nicht per Hand eingeschrieben werden.
Habt Ihr hier evtl. eine Lösung oder Ansatz für mich.
Schönen Dank im Voraus.
Lino
leider bin ich kein Script Fachmann, aber muss mich hier einer Aufgabe stellen.
Ich muss/will mit einer Batch (.bat) Datei aus einer Text (.txt) Datei viele viele Ordner mit fortlaufenden Unterordnern erstellen.
Das ganze soll dann folgendermaßen aussehen.
Text:
zBsp:
1. Name/Zeile aus Text Anna Anreim
2. Name/Zeile aus Text Betti Bruns
3. Name/Zeile aus Text Conny Clon
Ordner: Jeweils ein Namensordner mit 50 Unterordner mit Namen und Nummerierung.
Anna Anreim\Anna Anreim 01
bis
Anna Anreim\Anna Anreim 50
Betti Bruns\Betti Bruns 01
bis
Betti Bruns\Betti Bruns 50
Conny Clon\Conny Clon 01
bis
Conny Clon\Conny Clon 50
Die Ordnernamen sollen aber schon mit Leerzeichen (Anna Anreim 01)
und nicht mit Unterstricht (Anna_Anreim_01) benannt sein.
Ich habe bereits eine Befehlszeile gefunden die mir meine Ordner mit Namen erstellt.
Diese liest mir aus meiner ordnername.txt auch meine Namen aus und erstellt mir die Ordner.
Meiner Ansicht nach funktioniert das leider nur mit Unterstrich, aber nicht mit Leerzeichen.
for /f "tokens=1" %%a in (ordnername.txt) do mkdir %%a
und auch eine Methode die mir im gleichen Ordner fortlaufend durchnummerierte Ordner erstellt,
aber eben nicht in den Ordnern, die aus der Textdatei erstellt wurden, aber dafür funktioniert
es so auch mit Leerzeichen.
@echo OFF
SET N=1
:SCHLEIFE
IF %N%==51 GOTO ENDE
MD "Anne Anreim "%N%
SET /A N=%N%+1
GOTO SCHLEIFE
:ENDE
@echo ON
EXIT
bzw. auch diese hier
for /l %%i in (1,1,50) do mkdir "Anna Anreim "%%i
Die Namen für die Unterordner sollen aber auch alle aus dem Text übernommen
und nicht per Hand eingeschrieben werden.
Habt Ihr hier evtl. eine Lösung oder Ansatz für mich.
Schönen Dank im Voraus.
Lino
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 267140
Url: https://administrator.de/contentid/267140
Ausgedruckt am: 25.11.2024 um 18:11 Uhr
9 Kommentare
Neuester Kommentar
Hallo LinoVanBino und willkommen im Forum!
Könnte etwa so gehen:
Die Zählschleife von 101 bis 150 dient der Erzeugung von zweistelligen Nummern mit führender Null - wenn diese nicht benötigt würde, ließen sich die Zeilen 5 bis 12 auf
reduzieren ...
Grüße
bastla
Könnte etwa so gehen:
@echo off & setlocal
set "Liste=D:\ordnername.txt"
set "Ziel=D:\Test"
for /f "usebackq delims=" %%i in ("%Liste%") do (
for /L %%a in (101,1,150) do (
set "Nr=%%a"
setlocal enabledelayedexpansion
md "%Ziel%\%%i\%%i !Nr:~-2!"
endlocal
)
)
for /f "usebackq delims=" %%i in ("%Liste%") do for /L %%a in (1,1,50) do md "%Ziel%\%%i\%%i %%a"
Grüße
bastla
Hey, du kannst die Anzahl der Unterordner auch in den Text schreiben, mit einem Doppelpunkt vom Namen getrennt:
Dann bastlas Code leicht abgewandelt:
Gruß, Endoro
PS: bei manchen for-Schleifen können Schleifenparameter im Codeblock variabel sein.
Anna Anreim:20
Betti Bruns:30
Conny Clon:20
Dann bastlas Code leicht abgewandelt:
@echo off & setlocal
set "Liste=ordnername.txt"
set "Ziel=."
for /f "usebackq tokens=1,2 delims=:" %%i in ("%Liste%") do (
for /L %%a in (1,1,%%j) do (
set "Nr=0%%a"
setlocal enabledelayedexpansion
md "%Ziel%\%%i\%%i !Nr:~-2!"
endlocal
)
)
PS: bei manchen for-Schleifen können Schleifenparameter im Codeblock variabel sein.
Hallo,
Hab was Leichtes Gemacht das ließt es halt nicht aus einer TXT aus
SRY ist halt mi einem Punkt mit einem Leerzeichen geht das meinen Ertrachten nicht.
Hoffe das Hilft
Florian
Hab was Leichtes Gemacht das ließt es halt nicht aus einer TXT aus
@echo off
title Ordner Ersteller by Florian
:Start
cls
echo.
echo Pfad der zu erstellenden Ordner eingeben:
set /p pfad=
:Name
cls
echo.
echo Name der Ordner eingeben z.B. Anja
echo Erstellt wird Anja 1, Anja 2 usw.
set /p name=
:Anzahl
cls
echo.
echo Wie viele Ordner?:
set /p anz=
:MAKE
cls
set /a X=%X%+1
md %pfad%\%name%.%X%
if %X% == %anz% goto check
goto MAKE
:check
cls
if not exist %pfad%\%name%.1 goto fail
if not exist %pfad%\%name%.%X% goto fail 1
echo.
echo Ordner erolgreich Erstellt
pause>nul
exit
:fail
cls
echo.
echo Ordner konnten nicht erstellt werden.
pause>nul
goto Start
:fail1
cls
echo.
echo Wohlmoglich nicht alle Ordner Erstellt
pause>nul
goto Start
SRY ist halt mi einem Punkt mit einem Leerzeichen geht das meinen Ertrachten nicht.
Hoffe das Hilft
Florian