saracs 10 Geschrieben 1. April 2008 Melden Teilen 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 Zitieren Link zu diesem Kommentar
phoenixcp 10 Geschrieben 1. April 2008 Melden Teilen 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 Zitieren Link zu diesem Kommentar
saracs 10 Geschrieben 1. April 2008 Autor Melden Teilen 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 Zitieren Link zu diesem Kommentar
Biber 10 Geschrieben 1. April 2008 Melden Teilen 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 Zitieren Link zu diesem Kommentar
phoenixcp 10 Geschrieben 1. April 2008 Melden Teilen Geschrieben 1. April 2008 Hm, wenn du Robocopy nimmst, kannst du dir das sparen. Wenn der Pfad nicht vorhanden ist, legt er den an ;) Zitieren Link zu diesem Kommentar
saracs 10 Geschrieben 1. April 2008 Autor Melden Teilen 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 :) Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.