Spezielle Batch-Lösung gesucht!

W

WombatA

Gast
Hallo Jungs!

Ich beherrsche bereits einfache Backup-Skripte mit Robocopy unter Win7, aber hier brauch ich bitte unbedingt Hilfe!:(

Folgendes Szenario:

Ich bearbeite Aufträge mit 5 bis 6-stelligen Seriennummern, z.B.: 452201.
Setzt sich zusammen aus Kalenderwoche (45), Tag(2), Produktgruppe(2) und laufende Nummer(01)
Somit hat jeder Auftrag seine eigene Seriennummer.

Es gibt nun drei Verzeichnisse am Laufwerk, wo diese Nummern wie folgt vorkommen (können)

Verz. A: "001000452201" bzw. "B01000452201"

Verz. B: "000452201_001.pdf" bzw. "000452201_B01.pdf"

Verz. C: "000451101_001.pdf" bzw. "000451101_B01.pdf"


Ist es machbar, dass ich die Batch starte und sie mich nach einer Seriennumer fragt, ich diese eingebe und die Batch dann die Verz. A, B, und C durchsucht, und bei Vorhandensein aller Dateien in dessen Namen meine Seriennummer vorkommt, nach Zielordner "Z" kopiert?

Ich danke mal im Voraus Allen die mir helfen wollen!
 
cd \
cd "verzeichnis a"
copy *seriennummer* c:\verzeichnis_z
cd \
cd "verzeichnis b"
copy *seriennummer* c:\verzeichnis_z
cd \
cd "verzeichnis c"
copy *seriennummer* c:\verzeichnis_z
 
Danke @Soulii für die schnelle Antwort:-)

Allerdings bin ich anscheinend nicht auf deinem Level was Batches betrifft hahahaha

Ich hänge ja schon bei den Zeilen, damit die Batch mich zur Eingabe einer Seriennumer fragt!?
 
Hier mein momentaner Staus:

@echo off
set SerNr=
set /p SerNr=Seriennummer?:
set "datum=%date:~-4%%date:~-7,2%%date:~-10,2%"
robocopy V:\winter\prod\holz\Daten\%SerNr% c:\Test\%datum%\ /s
pause

jetzt kriege ich die Meldung dass er z.Bsp. "452203" nicht finden kann, da sie im Quellverzeichnis "001000452203" heisst!?
 
Du muß die Sternchen noch setzen:

Versuche mal

robocopy V:\winter\prod\holz\Daten\*%SerNr%* c:\Test\%datum%\ /s
 
Gemacht wie du gesagt:

FEHLER: Ungültiger Parameter #1: V:\winter\prod\holz\Daten\*%SerNr%*

Er erstellt auch keinen Zielordner...
 
Naja, mit robocopy habe ich es nicht probiert, nur mit dir.

Ich schau mal kurz.

Edit: noch eine Frage. Deine Verzeichnisnamen sind doch fest oder? Du suchst in den drei Verzeichnissen nach Dateien, die Du kopieren möchtest. Unterverzeichnisse gibt es nicht?
Ergänzung ()

Wenn ja, dann müßte dein Befehl eher so heißen:

robocopy V:\winter\prod\holz\Daten\<hier einer der Verzeichnisnamen> c:\Test\%datum%\ *%SerNr%* /s
 
Zuletzt bearbeitet:
so, die gleiche Fehlermeldung. Die Datei die er kopieren soll heisst im Ziel ja auch ""001000452203".

Vllt. ist das unser Problem?
 
Nee, die Fehlermeldung oben sagt ja, das der erste Parameter ungültig ist.
Wenn das Verzeichnis stimmt, dann muß die Fehlermeldung weg sein.

probiere es am besten als test mal von der Kommandozeile:

set SerNr=pa
robocopy c:\windows\ c:\0 *%SerNr%* /L

Es sollten etwa drei Dateien aufgelistet sein
 
Dann muß das andere eigentlich auch gehen. Mit den (hinteren) * muß du noch etwas aufpassen, da wird eventuell zu viel selektiert. Da gibt es aber genug Optionen, um auch nur Teilstrings zu selektieren.
 
So, jetzt funzts:

Code:
@echo off
set SerNr=
set /p SerNr=Seriennummer?:
set "datum=%date:~-4%%date:~-7,2%%date:~-10,2%"
robocopy V:\winter\prod\holz\Daten\ o:\%datum% *%SerNr%* /s
pause

Bin jetzt bis 7 offline. Danke dir sehr für deine Hilfe @miac; das Ding ist aber eh nu net ganz fertig.
Vllt. schaust morgen nochmal rein in diesen Thread!

Danke an Alle!
Ergänzung ()

Auf jeden Fall müssen wir noch klären wie ich des ganze in der Schleife laufen lassen kann. Praktisch wenn ich gerade eine Serie eingegeben habe dass dann wieder die Abfrage für die nächste Serie kommt!

Also wenn ich z.Bsp. 8 Nummern habe dass ich nicht achtmal die Batch neu starten muss:-)
 
Code:
:ENDLOS
@echo off
set SerNr=
set /p SerNr=Seriennummer?:
set "datum=%date:~-4%%date:~-7,2%%date:~-10,2%"
robocopy V:\winter\prod\holz\Daten\ o:\%datum% *%SerNr%* /s
pause
goto ENDLOS

Na ganz wahrscheinlich so ;)
 
werd das morgen gleich ausprobieren:-) Vielen Dank Jungs, hab heut viel gelernt!
Ergänzung ()

Morgen Jungs!

Ein Problem gibts da jetzt noch:

Beim starten der Batch fragt er mich brav nach einer Seriennummer, wenn ich aber nichts eingebe oder irgendeine Taste und dann Enter drücke kopiert er ALLE Dateien aus den 3 Verzeichnissen!

Das darf natürlich auf keinen Fall Passieren:-)

Weiss da wer von euch weiter ?
 
So sollte es Klappen (zumindest wenn man nix eingibt):
Code:
:ENDLOS
@echo off
set SerNr=
set /p SerNr= Bitte Seriennummer eingeben: 
if not defined SerNr goto ENDLOS
set "datum=%date:~-4%%date:~-7,2%%date:~-10,2%"
robocopy V:\winter\prod\holz\Daten\ o:\%datum% *%SerNr%* /s
pause
goto ENDLOS
Für den Rest hab ich grad keine Zeit... später dann.
 
Zuletzt bearbeitet:
Zurück
Oben