rookie68
Goto Top

Batch Datei automatisch 1 Ordner anlegen mit nächster freier Nummer, darin Unterordner und eine Excel-Datei

Hallo erstmal!

bisher habe ich noch keine passende Lösung gefunden:

eine Batch-Datei soll beim Aufruf in Ihrem Ordner (z.B. O:\Angebote\) einen weiteren Ordner , beginnend mit der nächsten freien Nummer anlegen, z.B. gibt es bereits "17001_Meyer", "17002_Schmidt" die nächste freie Nummer ist 17003.

Wenn in der Batchdatei möglich sollte die Ordnernummer per Abfrage um einen Namen erweitert werden, z.B.: Name? Eingabe "Fischer", Ergebnis wäre dann "17003_Fischer".

In diesem neuen Ordner "17003_Fischer" sollen dann 2 Unterordner angelegt werden "Allgemein" und "Kalkulation".
In dem Ordner "Allgemein" soll eine Exceldatei "Deckblatt" kopiert werden (diese liegt im selben Ordner wie die Batchdatei).

Ich weiß, es sind mehrere Wünsche auf einmal, und das so kurz nach Weihnachten face-wink

Kann mir jemand helfen?

Content-Key: 325314

Url: https://administrator.de/contentid/325314

Ausgedruckt am: 19.03.2024 um 10:03 Uhr

Mitglied: 131381
131381 03.01.2017, aktualisiert am 04.01.2017 um 12:18:22 Uhr
Goto Top
@echo off & setlocal
set "deckblatt=deckblatt.xlsx"  
set /p "name=Bitte Angebotsnamen eingeben:"  
for /f "tokens=1 delims=_" %%a in ('dir /b /AD /ON ^| findstr /b "[0-9]"') DO set /a num=%%a+1  
md "%num%_%name%\Allgemein"  
md "%num%_%name%\Kalkulation"  
copy "%deckblatt%" "%num%_%name%\Allgemein"  
Gruß mik

p.s. Wie wärs vielleicht mit einer vernünftigen Angebotsverwaltung und einer Datenbank? Naja dann bastel mal weiter ...face-wink
Mitglied: Rookie68
Rookie68 04.01.2017 um 12:02:28 Uhr
Goto Top
Hallo Mik,
vielen Dank zunächst!
.. das Anlegen der Ordner und kopieren der Datei funktioniert soweit, nur zählt er leider nicht hoch, es wird jedes mal ein Ordner mit "1_Name" erstellt.

echo off & setlocal
set "Anfragedatenblatt=Anfragedatenblatt.xlsx"
set /p "name=Bitte Angebotsnamen eingeben:"
for /f "tokens=1 delims=_" %%a in ('dir /b /AD /ON') DO set /a num=%%a+1
md "%num%_%name%\Allgemein"
md "%num%_%name%\Kalkulation"
copy "%Anfragedatenblatt%" "%num%_%name%\Allgemein"

Wie müsste die Syntax aussehen damit der Ordner mit einer 6-stelligen Nummer beginnt "170001_Name" und selbstständig hochzählt, also beim nächsten Aufruf "170002_neuerName"?

(Wir haben eine Angebotsverwaltung, der neue Vertriebschef möchte es aber leider so haben...)
Viele grüße
Mitglied: 131381
131381 04.01.2017 aktualisiert um 12:15:01 Uhr
Goto Top
zählt er leider nicht hoch, es wird jedes mal ein Ordner mit "1_Name" erstellt.
Funktioniert hier aber einwandfrei, wurde ja vorher getestet. Du hast die Datei entweder ins falsche Verzeichnis gelegt, oder du hast irgendeinen Ordner im Verzeichnis der keine Nummer am Anfang hat. Wenn das der Fall ist muss es noch an diesen Fall angepasst werden.
Mitglied: Rookie68
Rookie68 04.01.2017 um 12:29:39 Uhr
Goto Top
Hey Mik, großartig!
es war ein nichtnummerierter Ordner im Verzeichnis...
Besten Dank face-smile Lars
Mitglied: 131381
131381 04.01.2017 aktualisiert um 12:38:39 Uhr
Goto Top
Mit kleiner Anpassung (s. korrigierten Code oben) ist auch das kein Problem.

Gruß mik