brothermarcus
Goto Top

Erstellen einer Ordnerstruktur mit anschliessendem Aufteilen von Dateien in diese Ordner und Unterordner

Halli Hallo!

Ich bin neu in diesem Forum und erhoffe mir hier einige Antworten zu finden. Ich habe schon sehr viel aus diesem Forum gelesen und sehe immer wieder, daß hier sehr sehr viele wissen wovon sie reden. Nachdem ich mir nun schon seit 3 Wochen die Zähne ausbeise um einen Batch zu finden stelle ich nun hier die Anfrage.

OK - LOSE GEHTS:

Ich stelle meine Anfrage gleich mit Echtdaten und versuche die Aufgabenstellung möglichst präzise zu erklären, ich hoffe es geling mir:

Ich bin Serviceleiter in einem Medizintechnikunternehem und arbeite an der automatischen Archivierung von Kundendienstprotokollen.

Also, ich haben einen Ordner auf einem Netzlaufwerk G:\KDP in den alle Kundendienstprotokolle vorhanden sind. Dieser Ordner wird täglich mit neuen Kundendienstprotokollen gefüllt.

Die Dateinamen der Kundendienstprotokolle sind wie folgt:

AUTION JET AJ-4270_803030_2011-04-13_ADM01_4564.pdf
AUTION MAX AX-4280_004001_2011-04-13_ADM01_4564.pdf
AUTION MAX AX-4280_10504036_2011-04-13_ADM01_4564.pdf
BOND MAX_M210058_2011-04-13_ADM01_4564.pdf
OSMOSTATION OM-6050_30912009_2011-04-13_ADM02_23423.pdf
.
.
.usw.

1.) bis zum 1. _ = Gerätename
2.) 1. bis 2. _ = Seriennummer
3.) 2. bis 3. _ = Datum
4.) 3. bis 4. _ = Techniker
5.) 4. bis 5. _ = Work Order Nummer

Ich bräuchte nun einen Batch der folgendes realisiert:

1.) Erstelle mir Geräteordner, die den Namen aus den Dateien bis zum 1. Unterstrich, also den Gerätenamen erhalten:

AUTION JET AJ-4270
AUTION MAX AX-4280
BOND MAX
OSMOSTATION OM-6050

2.) Danach erstelle die Unterordner in diesen erzeugten Ordnern die den Namen der Seriennummer erhalten sollen:

AUTION JET AJ-4270
\ 803030

AUTION MAX AX-4280
\ 004001
\ 10504036

BOND MAX
\ M210058

OSMOSTATION OM-6050
\ 30912009

3.) Verschiebe die .pdf Dateien nach in die jeweiligen Unterordner

AUTION JET AJ-4270
\ 803030 --> AUTION JET AJ-4270_803030_2011-04-13_ADM01_4564.pdf

AUTION MAX AX-4280
\ 004001 --> AUTION MAX AX-4280_004001_2011-04-13_ADM01_4564.pdf
\ 10504036 --> AUTION MAX AX-4280_10504036_2011-04-13_ADM01_4564.pdf

BOND MAX
\ M210058 --> BOND MAX_M210058_2011-04-13_ADM01_4564.pdf

OSMOSTATION OM-6050
\ 30912009 --> OSMOSTATION OM-6050_30912009_2011-04-13_ADM02_23423.pdf

Soweit der prinzipielle Ablauf.

Am nächsten Tag wir der Ordner auf Laufwerk G:\KDP erneut mit .pdf Dateien gefüllt. Danach müsste die oben beschrieben Prozedur ausgeführt werden und dabei sollten die noch nicht vorhandenen Ordner erstellt werden. Wenn schon Ordner vorhanden sind sollen die Dateien nur in den entsprechenden Ordner verschoben werden.

Ich hoffe ich habe es verständlich genug beschrieben und bin mir sicher, daß mir hier jemand einen Tip geben kann wie man diese Aufagbenstellung realisieren kann.

Ich bedanke mich schon jetzt bei Euch !!!!

LG, Marcus

Content-Key: 164988

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

Printed on: April 26, 2024 at 13:04 o'clock

Member: bastla
bastla Apr 20, 2011 at 20:00:30 (UTC)
Goto Top
Hallo BrotherMarcus und willkommen im Forum!

Etwa so:
@echo off & setlocal
pushd "G:\KDP"  
for /f "delims=" %%i in ('dir /b "*.pdf"') do for /f "tokens=1-2 delims=_" %%a in ("%%~nxi") do (  
    md "%%a\%%b" 2>nul  
    echo move "%%i" "%%a\%%b\"  
)
popd
pause
Das Verschieben wird (wegen des "echo" vor dem "move") zunächst nur simuliert (die Ordner werden allerdings bereits erstellt) ...

Grüße
bastla
Member: Biber
Biber Apr 21, 2011 at 10:59:38 (UTC)
Goto Top
Moin BrotherMarcus,

willkommen im Forum.
Denkst du noch über eine bestimmte der vielen Zeilen nach oder können wir den Beitrag als "gelöst" kennzeichnen?

Grüße
Biber
Member: Skyemugen
Skyemugen Apr 21, 2011 at 11:20:58 (UTC)
Goto Top
[OT]
Aloha Biber!

Da ist aber jemand ungeduldig heute ... der TE kaut da zwei Wochen schon dran rum und war heute noch nicht einmal online hier - da kenne ich andere Beiträge, die älter sind und auf Nike-Logos warten, höhö

greetz André

P.S.: Funktioniert ja so wie beschrieben, technisch also natürlich „gelöst” ^_^
[/OT]
Member: BrotherMarcus
BrotherMarcus Apr 21, 2011 at 14:51:25 (UTC)
Goto Top
Hallo Bastla!

Wow das ging ja echt schnell. Habe es heute getestet und funktioniert einwandfrei.

Muss ehrlich gestehen, daß ich in Sachen Batchprogrammierung noch ein ziehmlicher ROOKIE bin, aber ich bin immer offen neue Sachen dazu zu lernen. Das es so einfach ist (is ja doch nur ein 8-zeiler) hätte ich jetzt nicht gedacht.

Aber nachdem ich jetzt weis, daß Du echt was drauf hast könntest Du mir vielleicht noch in einer anderen Sache helfen.

Um die Sache mit meiner Archiviererei noch mehr zu automatisieren würde ich etwas suchen, daß mir die ganzen Kundendienstprotokolle automatisch aus Outlook in den zuvor benannten Ordner G:\KDP abspeichert, nachdem diese im Posteingang erscheinen. Geht so etwas, naja ich vermute is auch so ein 8-zeiler oder ? face-smile

Ahja, bevor ich es vergesse, können die jeweiligen Batches in einen zusammengefasst werden und würde es auch gehen den Batch automatisch ablaufen zu lassen sobald ein neues Kundendienstprotokoll eingeht?

Ich glaube ich bin jetzt etwas unverschämt mit meinem Haufen an Fragen und hoffe ich gehe Dir nicht zu sehr auf den Geist.

Bin Dir auf alle Fälle sehr dankbar für Deine Hilfe

DANKE

LG, Marcus
Member: BrotherMarcus
BrotherMarcus Apr 21, 2011 at 14:57:41 (UTC)
Goto Top
Hallo Biber!

JA JA, wer den Schaden hat brauch für den Spott nicht zu sorgen.

Danke aber dafür, daß ich hier in diesem Forum so freundlich aufgenommen werde. Ich werde versuchen rasch etwas dazu zu lernen.

Also nochmals Danke

LG, Marcus
Member: bastla
bastla Apr 21, 2011 at 15:34:40 (UTC)
Goto Top
Hallo BrotherMarcus!
is ja doch nur ein 8-zeiler
Wenn ich hier nicht nach Zeilen bezahlt würde ... face-wink
@for %%i in ("G:\KDP\*.pdf") do @for /f "tokens=1-2 delims=_" %%a in ("%%~nxi") do @(md "G:\KDP\%%a\%%b" 2>nul & echo move "%%i" "G:\KDP\%%a\%%b\")
... automatisch aus Outlook in den zuvor benannten Ordner G:\KDP abspeichert ...
... ist allerdings eine andere Baustelle (und hinsichtlich Outlook eher nicht die meine) und daher ein Fall für einen neuen Thread.

Grüße
bastla