Gleichnamige Dateien aus verschiedenen Verzeichnissen kopier

German support forum

Moderators: Hacker, Stefan2, white

Post Reply
User avatar
JMS
Junior Member
Junior Member
Posts: 90
Joined: 2009-09-14, 11:17 UTC
Location: Germany

Gleichnamige Dateien aus verschiedenen Verzeichnissen kopier

Post by *JMS »

Hallo Commander - Freunde,

ich habe folgendes Problem, das ich in einer Befehlszeile / Batch Datei erledigen möchte:

In einer Datei befinden sich mehrere Pfade auf jeweils gleichnamige Dateien:

Inhalt der Datei "Quelldateien.txt":
C:\Verzeichnissname1\Datei.XYZ
C:\Verzeichnissname2\Datei.XYZ
C:\Verzeichnissname3\Datei.XYZ
...

Die Datei "Datei.XYZ" hat in den unterschiedlichen Verzeichnissen immer den selben Namen.

Diese Liste will ich nun sichern nach D:\Sicherungsvereichniss
natürlich ohne das die Datei.XYZ aus den unterschiedlichen Quellverzeichnissen überschrieben wird.
Praktisch wäre es, wenn D:\Sicherungsverzeichniss nach dem kopieren die Quell-verzeichnisstruktur aufweisen würde, es würde mir aber auch schon genügen, wenn die Datei.XYZ als z.B Datei.n, Datei.n+a1 usw. im Sicherungsverzeichniss ohne Unterverzeichnisse gespeichert würden.

Ich dachte, das sei recht einfach mit XCOPY in einer Batchdatei zu machen:

@echo off & setlocal
set "Liste=Quelldateien.txt"
set "Ziel=D:\Sicherungsverzeichniss\"
for /f "usebackq delims=" %%i in ("%Liste%") do xcopy /e "%%i" "%Ziel%\%%~nxi\"

ABER das funktioniert nicht, es werden zwar Unterverzeichnisse im Sicherungsverzeichniss angelegt, aber die Datei.XYZ wird immer NUR unter D:\Sicherungsverzeichniss\ abgelegt und damit jedesmal aus einem Quellverzeichniss wieder überschrieben.

Hat jemand einen Tip für mich?

Gruß, J.
User avatar
Dalai
Power Member
Power Member
Posts: 9970
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai »

Darf's auch etwas im TC sein? Such mal nach TreeCopyPlus bzw. CopyTree hier im Forum, mit diesen Plugins lässt sich das wunderbar erledigen.

MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
User avatar
JMS
Junior Member
Junior Member
Posts: 90
Joined: 2009-09-14, 11:17 UTC
Location: Germany

Post by *JMS »

Dalai wrote:Darf's auch etwas im TC sein? Such mal nach TreeCopyPlus bzw. CopyTree hier im Forum, mit diesen Plugins lässt sich das wunderbar erledigen.

MfG Dalai
Werde mal danach suchen,
wichtig ist, das es Befehlszeilenorientiert aufgerufen werden kann.
User avatar
Dalai
Power Member
Power Member
Posts: 9970
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai »

JMS wrote:wichtig ist, das es Befehlszeilenorientiert aufgerufen werden kann.
Deswegen hatte ich ja gefragt, ob's auch mit dem TC erledigt werden kann. Die Variante über die Plugins ist nämlich nix in Richtung Kommandozeile.

Wenn du wirklich etwas für die Kommandozeile suchst, dann bietet sich vielleicht Folgendes an:

Code: Select all

@echo off

set liste=C:\blubber_test.txt
set ziel=h:\b

for /f "tokens=* delims=" %%i in (%liste%) DO (
    echo %%~i ^> %ziel%
    mkdir "%ziel%\%%~pi" 2>NUL
    copy "%%~i" "%ziel%\%%~pi"
)
xcopy ist in diesem Fall übrigens massiv langsamer: 3,2 vs. 0,2 Sekunden für alle readme.txt in meinem TC-Verzeichnis (53 Stück).

MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
User avatar
JMS
Junior Member
Junior Member
Posts: 90
Joined: 2009-09-14, 11:17 UTC
Location: Germany

Post by *JMS »

Dalai wrote:...Wenn du wirklich etwas für die Kommandozeile suchst, dann bietet sich vielleicht Folgendes an:

Code: Select all

@echo off
...
xcopy ist in diesem Fall übrigens massiv langsamer: 3,2 vs. 0,2 Sekunden für alle readme.txt in meinem TC-Verzeichnis (53 Stück).

MfG Dalai
Super Dalai,

das funktioniert genau so wie ich es brauche.

Ich hatte gedacht, das ich alles mit XCOPY oder ROBOCOPY erschlagen könnte, deine Lösung mit dem MD funktioniert aber perfekt.

Es geht um die Sicherung von nur 10 Logdateien, die auf Bedarf ausgewertet werden. In der Auswerteroutine rufe ich Programme bzw. Batchdateien auf.

Vielen Danke für deine Hilfe und schönen Restsonntag!
Post Reply