119678
Goto Top

Viele Dateien automatisch in bestehende Ordner ablegen

Hallo an die Spezialisten

einfache Batchanweisungen kann ich erstellen. Bei dem momentanen Problem bin ich eindeutig an meinen Grenzen.

in einem Verzeichnis habe ich viele Daten (in diesem Fall pdf Dateien)
Diese Dateien haben immer eine Nummer als Namen, also zum Beispiel 250615.pdf
Es bestehen auf einem anderen Laufwerk bereits Ordner mit dem jeweiligen Namen, also zum Beispiel Ordner 250615.
Nun sollen alle Dateien aus dem einen Verzeichnis in den jeweiligen Ordner kopiert werden.

Beispiel:

c:\Beispiel\110314.pdf -> D:\110314\110314.pdf
c:\Beispiel\110315.pdf -> D:\110315\110315.pdf
c:\Beispiel\110316.pdf -> D:\110316\110316.pdf

etc.

soll solange durchlaufen, bis alle Dateien übertragen wurden.
Schön wäre noch, wenn man für die Zukunft noch Parameter bestimmt,
wenn die einzutragenden Daten evtl. so aussehen c:\Beispiel\110314_Rekla.pdf

Habe hier im Forum schon länger gesucht, bin aber wohl nicht in der Lage,
Skripte die in etwa in die Richtung gehen entsprechend um zu bauen.

Vielen Dank schon mal im Voraus für eure Bemühungen!

Charly

Content-Key: 258610

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

Printed on: April 18, 2024 at 19:04 o'clock

Mitglied: 114757
114757 Dec 29, 2014 updated at 16:05:39 (UTC)
Goto Top
Moin Charly,
z.B. so
@echo off
set "quelle=C:\Beispiel"  
set "ziel=D:"  
for /f "delims=" %%a in ('dir /B /A-D "%quelle%\*.pdf" ^|findstr /ir "[0-9]*.pdf" 2^>nul') DO @(  
    if not exist "%ziel%\%%~na\" md "%ziel%\%%~na"  
    copy "%quelle%\%%a" "%ziel%\%%~na\"  
)
Gruß jodel32
Mitglied: 119678
119678 Dec 29, 2014 at 17:30:21 (UTC)
Goto Top
Danke Jodel

ging verdammt fix face-wink herzlichen Dank nochmal

lege mir die Lösung unters Kopfkissen damit ich die mal Schritt für Schritt durchgehen
und vor allem verstehen kann!

Danke und schönen Abend
Mitglied: 119678
119678 Jan 02, 2015 at 13:44:23 (UTC)
Goto Top
Servus Jodel ..

erst mal noch ein gutes Neues Jahr!

Du hattest mir auf ein Problem eine Super-Lösung geboten.

echo off
set "quelle=C:\Beispiel"
set "ziel=D:"
for /f "delims=" %%a in ('dir /B /A-D "%quelle%\*.pdf" ^|findstr /ir "[0-9]*.pdf" 2^>nul') DO @(
if not exist "%ziel%\%%~na\" md "%ziel%\%%~na"
copy "%quelle%\%%a" "%ziel%\%%~na\"
)

Nun wollte ich Dateien die so aussehen (110510_Zustellverbot) in den schon bestehenden Ordner 110510 übertragen.
Er hat mir aber eine neue Zieldatei 110510_Zustellverbot erstellt. Dachte mir das es an dem fehlenden "d" nach dem findstr /ir gelegen hatte.
So war es nicht. Habe auch bei delims den Unterstrich angeführt - ging auch nicht ... mit tokens kam ich auch nicht weiter ...

Wenn Du mal Zeit hast: Was muss ich noch ändern?

Danke schon mal

Charly
Mitglied: 114757
114757 Jan 02, 2015 at 13:50:29 (UTC)
Goto Top
@echo off & setlocal enabledelayedexpansion
set "quelle=C:\Beispiel"  
set "ziel=D:"  
for /f "delims=" %%a in ('dir /B /A-D "%quelle%\*.pdf" ^|findstr /ir "[0-9]_*.pdf" 2^>nul') DO @(  
    for /f "tokens=1 delims=_" %%b in ("%%a") do set "zielordner=%ziel%\%%b"  
    if not exist "!zielordner!" md "!zielordner!"  
    copy "%quelle%\%%a" "!zielordner!"  
)
Gruß jodel32
Mitglied: 114757
Solution 114757 Jan 06, 2015, updated at Jan 07, 2015 at 06:49:41 (UTC)
Goto Top
Den Beitrag dann bitte noch auf gelöst setzen.

Gruß jodel32