saracs 10 Geschrieben 1. April 2008 Melden Geschrieben 1. April 2008 Servus, ich hab derzeit folgendes Problem: in einem Ordner liegen ca. 2700 mit Dateinamen ala DBA_3_xxxx_xxx.tif. Diese Dateien sollen in Ordner kopiert werden, die die Namen DBA_3_xxxx tragen. Wenn der passende Ordner zu einer Datei nicht vorhanden ist muss dieser natürlich vorher erstellt werden. Beispiel: DBA_3_0001_001.tif DBA_3_0001_013.tif müssen in den Ordner DBA_3_0001 DBA_3_0142_321.tif muss in den Ordner DBA_3_0142 usw... Mein Problem hierbei ist, dass die Dateien nicht von 0 bis irgendwas durchgängig vorhanden sind. Ich hab jetzt selber versucht das ganze unter vbscript umzusetzen - bin aber mit Erfolg gescheitert. In der Boardsuche konnte ich leider nichts passendes finden. Wer kann helfen? Gruß saracs
phoenixcp 10 Geschrieben 1. April 2008 Melden Geschrieben 1. April 2008 Hi saracs Hilft dir das hier weiter? https://www.mcseboard.de/windows-forum-scripting-71/vbs-batch-datei-ordner-zuordnung-131940.html
saracs 10 Geschrieben 1. April 2008 Autor Melden Geschrieben 1. April 2008 Vielen Dank, ein guter Ansatz. Jetzt muss ich nur noch schauen wie ich die nicht vorhandenen Ordner abfrage und ggf. automatisch erstellen kann. Irgendwie hat ich das scripten einfacher in Erinerrung :rolleyes: Gruß saracs
Biber 10 Geschrieben 1. April 2008 Melden Geschrieben 1. April 2008 Moin saracs, ich würde es mit zwei Zeilen vom CMD-Prompt aus abfackeln. for /f "delims=_ tokens=1-3 " %i in ('dir /a-D /b d:\einDBADir\DBA_3_*') do @if not exist "d:\einDBADir\%i_%j_%k" md "d:\einDBADir\%j_%j%k"for /f "delims=_ tokens=1-3 " %i in ('dir /aD /b d:\einDBADir\DBA_3_*') do move "d:\einDBADir\%i_%j_%k*.tif" "d:\einDBADir\%j_%j%k\"[/Code] [ungetestete Skizze] Grüße Biber
phoenixcp 10 Geschrieben 1. April 2008 Melden Geschrieben 1. April 2008 Hm, wenn du Robocopy nimmst, kannst du dir das sparen. Wenn der Pfad nicht vorhanden ist, legt er den an ;)
saracs 10 Geschrieben 1. April 2008 Autor Melden Geschrieben 1. April 2008 Servus, hier meine Lösung: @echo off cls set SRC=c:\quelle set DEST=c:\ziel for /f "tokens=4" %%i in ('dir %SRC% ^| find "_"') do ( for /f "tokens=1-3 delims=_" %%j in ("%%i") do ( md %DEST%\%%j_%%k_%%l 2>nul echo copy %SRC%\%%i %DEST%\%%j_%%k_%%l\%%i copy %SRC%\%%i %DEST%\%%j_%%k_%%l\%%i >nul if %errorlevel% EQU 0 ( echo Datei %%i erfolgreich nach %%j\%%k\%%l kopiert ) else ( echo FEHLER beim Verarbeiten der Datei %%i ) ) ) Vielen Dank an alle, besonder phonixcp für den ersten Link! Gruß saracs PS: grrr... war ja klar, dass irgendwas wieder nicht funktionieren wird :rolleyes: Im Moment wird nur die erste Datei kopiert. der rest bleibt unberührt, obwohl kein Fehler gemeldet wird... Ich poste wieder sobald es was neues gibt. PPS: Habe nun den Code berichtigt. Funktioniert einwandfrei :)
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden