Batch - Dateien umkopieren
Hallo zusammen,
ein passenderer Titel fällt mir grad nicht ein, ich beschreib einfach mal das Problem:
Es gibt einen Ordner "Scans", dieser enthält Unterordner mit LKWs, die nach dem Kennzeichen benannt sind. In jedem Ordner eines LKWs befindet sich ein weiterer Ordner mit dem Kennzeichen des Anhängers. Und in genau diesem Ordner befinden sich gescannte Dokumente. Diese Struktur legt ein Tool des Scanners automatisch an.
Beispiel:
Scans \ B-KA 5678 \ B-KA 5345 \ scan1_48346456.pdf
Scans \ F-BI 1007 \ F-BI 6014 \ scan1_258465436.pdf
So ungefähr.
Die gescannten Dokumente sind mit einem Zeitstempel versehen, daher diese komische Nummer.
Gewünscht ist, dass die Dateien in beiden Ordnern abgelegt werden und die Unterordner verschwinden. Ja, es sollen bewußt doppelte Dateien entstehen.
Der Inhalt des Ordners "Scans" soll also umsortiert werden in den Ordner "Fahrzeuge" und dort soll zu jedem "Fahrzeug / Anhänger" ein neuer Unterordner "scans" mit dem Inhalt entstehen.
Fahrzeuge \ B-KA 5678 \ scans \ scan1_48346456.pdf
Fahrzeuge \ B-KA 5345 \ scans \ scan1_48346456.pdf
Fahrzeuge \ F-BI 1007 \ scans \ scan1_258465436.pdf
Fahrzeuge \ F-BI 6014 \ scans \ scan1_258465436.pdf
Der Ordner "Scans" (also dort, wo reingescannt wird), wird immer weiter gefüllt, ein Scantool legt beim einscannen die Ordner für die LKWs und die Anhänger automatisch an. Und ich benötige eine Lösung dafür, um diesen Ordner in das endgültige Zielverzeichnis umzusortieren. Das heißt auch, dass irgendwann zu einem Fahrzeug, welches bereits existiert neue Daten gescannt werden.
So, ich hoffe, ich hab mich nicht allzu kompliziert ausgedrückt und ihr könnt mir helfen.
MfG
Daniel
ein passenderer Titel fällt mir grad nicht ein, ich beschreib einfach mal das Problem:
Es gibt einen Ordner "Scans", dieser enthält Unterordner mit LKWs, die nach dem Kennzeichen benannt sind. In jedem Ordner eines LKWs befindet sich ein weiterer Ordner mit dem Kennzeichen des Anhängers. Und in genau diesem Ordner befinden sich gescannte Dokumente. Diese Struktur legt ein Tool des Scanners automatisch an.
Beispiel:
Scans \ B-KA 5678 \ B-KA 5345 \ scan1_48346456.pdf
Scans \ F-BI 1007 \ F-BI 6014 \ scan1_258465436.pdf
So ungefähr.
Die gescannten Dokumente sind mit einem Zeitstempel versehen, daher diese komische Nummer.
Gewünscht ist, dass die Dateien in beiden Ordnern abgelegt werden und die Unterordner verschwinden. Ja, es sollen bewußt doppelte Dateien entstehen.
Der Inhalt des Ordners "Scans" soll also umsortiert werden in den Ordner "Fahrzeuge" und dort soll zu jedem "Fahrzeug / Anhänger" ein neuer Unterordner "scans" mit dem Inhalt entstehen.
Fahrzeuge \ B-KA 5678 \ scans \ scan1_48346456.pdf
Fahrzeuge \ B-KA 5345 \ scans \ scan1_48346456.pdf
Fahrzeuge \ F-BI 1007 \ scans \ scan1_258465436.pdf
Fahrzeuge \ F-BI 6014 \ scans \ scan1_258465436.pdf
Der Ordner "Scans" (also dort, wo reingescannt wird), wird immer weiter gefüllt, ein Scantool legt beim einscannen die Ordner für die LKWs und die Anhänger automatisch an. Und ich benötige eine Lösung dafür, um diesen Ordner in das endgültige Zielverzeichnis umzusortieren. Das heißt auch, dass irgendwann zu einem Fahrzeug, welches bereits existiert neue Daten gescannt werden.
So, ich hoffe, ich hab mich nicht allzu kompliziert ausgedrückt und ihr könnt mir helfen.
MfG
Daniel
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 230926
Url: https://administrator.de/contentid/230926
Ausgedruckt am: 26.11.2024 um 07:11 Uhr
9 Kommentare
Neuester Kommentar
Hallo DeeJayBee!
Ungetestet etwa so:
Das Löschen der Scandateien wird (wegen des "
Grüße
bastla
Ungetestet etwa so:
@echo off & setlocal
set "Quelle=D:\Scans"
set "Ziel=D:\Fahrzeuge"
for /d %%L in ("%Quelle%\*") do (
for /d %%A in ("%%~L\*") do(
for %%S in ("%%~A\*.pdf") do (
xcopy "%%S" "%Ziel%\%%~nxL\" && xcopy "%%S" "%Ziel%\%%~nxA\" && echo del "%%S"
)
)
)
echo
" vor dem "del
") nur durch Ausgabe des Befehls simuliert.Grüße
bastla
Mein Vorschlag:
Gruss.
@ECHO OFF &SETLOCAL disableDelayedExpansion
SET "SourceFolder=%UserProfile%\test"
SET "TargetFolder=%Temp%"
FOR /r "%SourceFolder%" %%a IN (*.pdf) DO FOR %%b IN ("%%~dpa.") DO FOR %%c IN ("%%~dpb.") DO (
ECHO(MD "%TargetFolder%\%%~nxb"
ECHO(MD "%TargetFolder%\%%~nxc"
ECHO(COPY "%%~a" "%TargetFolder%\%%~nxb"
ECHO(MOVE "%%~a" "%TargetFolder%\%%~nxc"
ECHO(RD /s /q "%%~fc"
)
Zitat von @DeeJayBee:
Hi Andy,
das Scantool kann ich leider nicht anders einstellen.
Eine einfache Möglichkeit wäre ja, die Dokumente mehrfach zu scannen - das ist aber doppelte Arbeit.
Gewünscht ist halt, dass ein Dokument einmal gescannt wird und in zwei Ordnern landen soll. Das Problem an dem Scantool ist
leider, dass ich 2 Informationen (LKW + Anhänger) mitgeben muss, und das Tool dafür jeweils einen neuen Ordner anlegt.
LG Daniel
P.S.: Ja, es ist ein Windowssystem
Hi Andy,
das Scantool kann ich leider nicht anders einstellen.
Eine einfache Möglichkeit wäre ja, die Dokumente mehrfach zu scannen - das ist aber doppelte Arbeit.
Gewünscht ist halt, dass ein Dokument einmal gescannt wird und in zwei Ordnern landen soll. Das Problem an dem Scantool ist
leider, dass ich 2 Informationen (LKW + Anhänger) mitgeben muss, und das Tool dafür jeweils einen neuen Ordner anlegt.
LG Daniel
P.S.: Ja, es ist ein Windowssystem
Hi
Wenn die Ordnerbennung so wie sie jetzt ist OK ist und man die Struktur nur spiegeln will ist Robocopy das richtige.
Schau dir das tool mal an. Du kannst einfach eine Batch datei und eine Aufgabe erstellen und diese dann dauerhaft laufen lassen. So wären deine Ordner immer genau gleich.
LG Andy
Hallo DeeJayBee!
Das Löschen des Ordners ließe sich natürlich auch noch ergänzen, allerdings war mir aufgrund Deiner Beschreibung nicht ganz klar, ob es tatsächlich immer nur um eine Datei bzw einen Anhänger geht - falls beides ja, einfach
Grüße
bastla
Hier wird die Datei im Anschluss direkt verschoben und muss nicht noch erneut gelöscht werden.
Im Gegenzug müssen dafür aber beide Ordner vorweg erstellt werden; außerdem findet das Löschen bei meinem Ansatz (wegen "&&
") nur statt, wenn beide Kopiervorgänge ohne Fehler beendet wurden ...Das Löschen des Ordners ließe sich natürlich auch noch ergänzen, allerdings war mir aufgrund Deiner Beschreibung nicht ganz klar, ob es tatsächlich immer nur um eine Datei bzw einen Anhänger geht - falls beides ja, einfach
xcopy "%%S" "%Ziel%\%%~nxL\" && xcopy "%%S" "%Ziel%\%%~nxA\" && echo rd /s /q "%%L"
bastla