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-ID: 258610

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

Ausgedruckt am: 27.11.2024 um 00:11 Uhr

114757
114757 29.12.2014 aktualisiert um 17:05:39 Uhr
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
119678
119678 29.12.2014 um 18:30:21 Uhr
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
119678
119678 02.01.2015 um 14:44:23 Uhr
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
114757
114757 02.01.2015 um 14:50:29 Uhr
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
114757
Lösung 114757 06.01.2015, aktualisiert am 07.01.2015 um 07:49:41 Uhr
Goto Top
Den Beitrag dann bitte noch auf gelöst setzen.

Gruß jodel32