Mit Batchdatei Ordnernamen durchsuchen und neue Ordnerstruktur anlegen mit neuem Namen
Hallo,
ich bin tatsächlich kein Programmierer oder in diesem Bereich tätig. Trotzdem versuche ich ein Problem zu lösen.. Ich probiere mal das Ganze grob zu beschreiben.
Ich habe einen Ordner in dem mehrere Unterordner liegen, diese sind mit einer Projektnummer+Projektnamen benannt. Beispielsweise: MA-20-0100__XX .
Nun möchte ich eine Batchdatei erstellen, die die letzten vier Ziffern der Projektnummer überprüft, in diesem Fall also: "0100" und anschließend einen neuen Ornder erstellt der dann wie folgt heißt: MA-20-0100(+1)__XX. Das (+1) steht in diesem Fall dafür, dass die entsprechende Projektnummer bei der Neuerstellung des Ordners um 1 hochgezählt werden soll. Also in Kurzform: Es soll immer ein neuer Projektornder (Struktur) erstellt werden und die Benennung erfolgt auf Basis der höchsten, in dem Verzeichnis vorhandnen Projektnummer und wird um 1 hochgezählt.
Wenn also Ordner: "MA-20-0100__XX" vorhanden ist, soll der nächste Ordner "MA-20-0101__XX" heißen
Das einzige was ich bisher allerdings zu Stande bringe ist folgendes:
@for /f "tokens=1" %%a in (ordnername.txt) do call :loop %%A
:loop
mkdir %1
cd %1
mkdir MA-20-0100__XX
cd MA-20-0100__XX
mkdir Entwicklung
mkdir Dateien
mkdir viele_tolle_Sachen
mkdir dies_und_das
cd..
cd..
goto :eof
Damit wird mir zwar der neue Ordner erstellt, mir fehlt allerdings die fortlaufende Nummer und ich habe wirklich überhaupt keine Ahnung wie das gehen könnte. Wenn ich das Ganze in google eingebe, finde ich zwar immer einige Sachen, aber nichts was genau auf mein Problem passt. Vielleicht könnt ihr mich ein bisschen verstehen, wenn man wirklich keien Ahnung von der Materie hat, fällt das Abstrahieren wirklich schwer und für einige von euch ist das hier vielleicht eine einfach Übung.. Ich wäre euch jedenfalls für jede Hilfe sehr dankbar
beste Grüße und einen schönen Tag,
CmDShepard
ich bin tatsächlich kein Programmierer oder in diesem Bereich tätig. Trotzdem versuche ich ein Problem zu lösen.. Ich probiere mal das Ganze grob zu beschreiben.
Ich habe einen Ordner in dem mehrere Unterordner liegen, diese sind mit einer Projektnummer+Projektnamen benannt. Beispielsweise: MA-20-0100__XX .
Nun möchte ich eine Batchdatei erstellen, die die letzten vier Ziffern der Projektnummer überprüft, in diesem Fall also: "0100" und anschließend einen neuen Ornder erstellt der dann wie folgt heißt: MA-20-0100(+1)__XX. Das (+1) steht in diesem Fall dafür, dass die entsprechende Projektnummer bei der Neuerstellung des Ordners um 1 hochgezählt werden soll. Also in Kurzform: Es soll immer ein neuer Projektornder (Struktur) erstellt werden und die Benennung erfolgt auf Basis der höchsten, in dem Verzeichnis vorhandnen Projektnummer und wird um 1 hochgezählt.
Wenn also Ordner: "MA-20-0100__XX" vorhanden ist, soll der nächste Ordner "MA-20-0101__XX" heißen
Das einzige was ich bisher allerdings zu Stande bringe ist folgendes:
@for /f "tokens=1" %%a in (ordnername.txt) do call :loop %%A
:loop
mkdir %1
cd %1
mkdir MA-20-0100__XX
cd MA-20-0100__XX
mkdir Entwicklung
mkdir Dateien
mkdir viele_tolle_Sachen
mkdir dies_und_das
cd..
cd..
goto :eof
Damit wird mir zwar der neue Ordner erstellt, mir fehlt allerdings die fortlaufende Nummer und ich habe wirklich überhaupt keine Ahnung wie das gehen könnte. Wenn ich das Ganze in google eingebe, finde ich zwar immer einige Sachen, aber nichts was genau auf mein Problem passt. Vielleicht könnt ihr mich ein bisschen verstehen, wenn man wirklich keien Ahnung von der Materie hat, fällt das Abstrahieren wirklich schwer und für einige von euch ist das hier vielleicht eine einfach Übung.. Ich wäre euch jedenfalls für jede Hilfe sehr dankbar
beste Grüße und einen schönen Tag,
CmDShepard
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 580164
Url: https://administrator.de/forum/mit-batchdatei-ordnernamen-durchsuchen-und-neue-ordnerstruktur-anlegen-mit-neuem-namen-580164.html
Ausgedruckt am: 22.04.2025 um 02:04 Uhr
12 Kommentare
Neuester Kommentar

@echo off &setlocal enabledelayedexpansion
set "root=%~1"
for /f "tokens=1,2 delims=_" %%a in ('dir /b /ad /on "%root%"') do (
set "projectnum=%%a"
set "num=1!projectnum:~-4!"
set /a "next=!num! + 1"
set "next=!projectnum:~0,-4!!next:~1!__%%b"
)
echo Neuer Ordner : %next%
md "%root%\%next%"
Hallo
Sind denn die Unterordner
Entwicklung
Dateien
viele_tolle_Sachen
dies_und_das
immer die selben?
Dann würde ich einen Vorlageordner MA-20-AAAA__XX mit allen Unterordnern erstellen.
Bei einem neuen Projekt dann diesen Ordner einfach im Explorer kopieren (CTRL+C), und dann umbenennen.
Das wäre meiner Meinung nach die einfachste Lösung
Ein erfahrener "Batcher" kann dir sicherlich den String in Einzelteile zerlegen, und die vierstellige Zahl hochzählen.
Wenn aber in dem Verzeichnis zB nur ein Ordner existiert, bei dem zB ein Bindestrich zwischen MA-20 fehlt, gibt's Probleme
Gruss
Sind denn die Unterordner
Entwicklung
Dateien
viele_tolle_Sachen
dies_und_das
immer die selben?
Dann würde ich einen Vorlageordner MA-20-AAAA__XX mit allen Unterordnern erstellen.
Bei einem neuen Projekt dann diesen Ordner einfach im Explorer kopieren (CTRL+C), und dann umbenennen.
Das wäre meiner Meinung nach die einfachste Lösung
Ein erfahrener "Batcher" kann dir sicherlich den String in Einzelteile zerlegen, und die vierstellige Zahl hochzählen.
Wenn aber in dem Verzeichnis zB nur ein Ordner existiert, bei dem zB ein Bindestrich zwischen MA-20 fehlt, gibt's Probleme
Gruss

Lesen, verstehen und dann selbst machen, sonst lernst du ja nüscht, außerdem ist das hier ja kein Machmirdochmalbitte-Forum ...
Viel Erfolg. I'm out.
Viel Erfolg. I'm out.
Hallo,
Windows Batch Grundlagen
https://www.tutorialspoint.com/batch_script/index.htm
https://www.instructables.com/id/Very-Basic-Batch-Tutorial/
http://www.trytoprogram.com/batch-file/
https://o7planning.org/en/11531/batch-scripting-language-tutorial-for-be ...
https://praxistipps.chip.de/batch-online-lernen-3-gute-webseiten_47068
https://en.wikibooks.org/wiki/Windows_Batch_Scripting
Und hiermit findet auch deine Suchmaschine noch millionen mehr....
https://www.google.com/search?q=batch+for+dummys
Gruß,
Peter
Zitat von @CmDShepard:
Auch auf die Gefahr hin, dass ich jetzt mit Steinen beworfen und mit Schimpf und Schande überhäuft werde, ich habe mir den Link angesehen und bin nach wie vor kaum klüger. Ich verstehe nicht einmal die Hälfte von dem was da steht, was sicherlich daran liegt, dass ich in einem ganz anderem Bereich tätig bin und mit Programmierung wirklich gar nichts am Hut habe.. Falls noch jemand Lust hat, mir einen Tipp zu geben wäre ich sehr dankbar. Andernfalls kann dieser Beitrag auch geschlossen werden, ich möchte niemandem zur Last fallen oder nerven
Dann mal hier anfangen:Auch auf die Gefahr hin, dass ich jetzt mit Steinen beworfen und mit Schimpf und Schande überhäuft werde, ich habe mir den Link angesehen und bin nach wie vor kaum klüger. Ich verstehe nicht einmal die Hälfte von dem was da steht, was sicherlich daran liegt, dass ich in einem ganz anderem Bereich tätig bin und mit Programmierung wirklich gar nichts am Hut habe.. Falls noch jemand Lust hat, mir einen Tipp zu geben wäre ich sehr dankbar. Andernfalls kann dieser Beitrag auch geschlossen werden, ich möchte niemandem zur Last fallen oder nerven
Windows Batch Grundlagen
https://www.tutorialspoint.com/batch_script/index.htm
https://www.instructables.com/id/Very-Basic-Batch-Tutorial/
http://www.trytoprogram.com/batch-file/
https://o7planning.org/en/11531/batch-scripting-language-tutorial-for-be ...
https://praxistipps.chip.de/batch-online-lernen-3-gute-webseiten_47068
https://en.wikibooks.org/wiki/Windows_Batch_Scripting
Und hiermit findet auch deine Suchmaschine noch millionen mehr....
https://www.google.com/search?q=batch+for+dummys
Gruß,
Peter
Hallo,
Gruß,
Peter
Zitat von @CmDShepard:
Ich habe mich mal ein wenig durchgeklickt, nur wie ich bereits sagte bin ich dafür kein Experte und möchte auch keiner werden.
Dann sage deinem Chef das du die Aufgabe nicht lösen kannst und hilfe brauchst. Er soll schon mal Mittel bereitstellen wenn ein externer BatchGuru das für euch lösen und umsetzen soll.Ich habe mich mal ein wenig durchgeklickt, nur wie ich bereits sagte bin ich dafür kein Experte und möchte auch keiner werden.
Ich arbeite in der Aussenkommunikation und Marketingabteilung
und schmückst dich gern mit fremden federn...Gruß,
Peter
Hallo
Probiers mal so:
Erstellt dir die Ordner in dem Verzeichnis, wo du die Batch aufrufst
md "%root%\%next%
md "%root%\%next%\Entwicklung
md "%root%\%next%\Dateien
md "%root%\%next%\viele_tolle_Sachen
md "%root%\%next%\dies_und_das
erstellt dir die Ordner direkt auf im Root (zB C:\ oder D:\)
Der Ordner MA-20-0100__XX, von dem aus "gezählt" werden soll, muss vorhanden sein
Gruss
Probiers mal so:
@echo off &setlocal enabledelayedexpansion
set "root=%~1"
for /f "tokens=1,2 delims=_" %%a in ('dir /b /ad /on "%root%"') do (
set "projectnum=%%a"
set "num=1!projectnum:~-4!"
set /a "next=!num! + 1"
set "next=!projectnum:~0,-4!!next:~1!__%%b"
)
echo Neuer Ordner : %next%
md "%next%
md "%next%\Entwicklung
md "%next%\Dateien
md "%next%\viele_tolle_Sachen
md "%next%\dies_und_das
md "%root%\%next%
md "%root%\%next%\Entwicklung
md "%root%\%next%\Dateien
md "%root%\%next%\viele_tolle_Sachen
md "%root%\%next%\dies_und_das
erstellt dir die Ordner direkt auf im Root (zB C:\ oder D:\)
Der Ordner MA-20-0100__XX, von dem aus "gezählt" werden soll, muss vorhanden sein
Gruss