anwenderdummy
Goto Top

Bestimmte Dateien kopieren, prüfen und umbenennen

Hallo
Ich will eigentlich bestimmte Dateien (mit Endung .xxx) verschieben, dabei müssen die umbennant werden und es soll sichergestellt werden, dass die auch sauber im Zielordner angekommen sind.
Das sind dann:
Schritt 1. Dateien selektieren und kopieren
Schritt 2. Kopiervorgang prüfen
Schritt 3. Datein im Zielordner umbenennen in zzzz_alterDateiname.xxx, dabei ist zzzz konstant
Schritt 4. Originaldateien löschen.
Könnt ihr mir bitte helfen? Ich komme da leider nicht weiter.

Content-Key: 68937

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

Printed on: April 18, 2024 at 00:04 o'clock

Member: Dani
Dani Sep 18, 2007 at 17:45:24 (UTC)
Goto Top
Moin AnwenderDummy!
An sich kein Problem...du schreibst Ich komme da leider nicht weiter.. Wie weit bist du denn?? Deine Aussage lässt mich vermuten, dass du einen kl. Batchschnipsel schon hast. *g*


Grüße
Dani
Member: AnwenderDummy
AnwenderDummy Sep 19, 2007 at 07:11:58 (UTC)
Goto Top
Na ja, ich weiss, dass ich mit xcopy Dateien auswählen und kopieren kann. Das Löschen bekomme ich auch hin. Wie kann ich aber die Dateien vergleichen, ob die wirklich kopiert wurden?
Member: Dani
Dani Sep 19, 2007 at 07:33:02 (UTC)
Goto Top
Es müsste bei xcopy einen Parameter geben, der das überpürft. Du könntest also die komplette Ausgabe bzw. Fehler in eine Logdatei zu schreiben. Diese könntest du am Ende prüfen und die Aktion "x" ausführen (z.B. Mail an dich).


Grüße
Dani
Member: Biber
Biber Sep 19, 2007 at 20:55:03 (UTC)
Goto Top
Na ja, da würde ich nicht soviel Heckmeck drum machen.

Wenn ich (gemäß der obigen Anforderung Schritt 1-4) Dateien kopieren, prüfen,umbenennen, Originale löschen soll und das wie unter ergänzt mit Xcopy --->übersetzt wohl: auch in Unterverzeichnissen, komme ich mit einer Zeile ohne XCopy schneller zu einer Lösung.

Ich würde mir einen beliebigen freien Laufwerksbuchstaben nehmen (in meinem Fall B: wie "BenutztNieEiner").
Um z.B alle b*.txt-Dateien in allen Unterverzeichnissen zu kopieren, umzubenennen und zu löschen, reicht dann ein Einzeiler:


C:\Dokumente und Einstellungen\Biber <--- in diesem Verzeichnis stehe ich, nach Y:\Eigene Dateien\<relativer Pfad> sollen die Dateien
>dir /b /s /a-d b*.txt>Nul && subst b: . && (xcopy /t /s b:\b*.txt Y:\Eigene Dateien\*.*) && (for /r b:\ %i in ("b*.txt") do @echo move "%i" "y:\Eigene Dateien\%~piZzzZ_%~nxi") & subst b: /d  
move "t:\Anwendungsdaten\Microsoft\Internet Explorer\brndlog.txt" "y:\Eigene Dateien\\Anwendungsdaten\Microsoft\Internet Explorer\ZzzZ_brndlog.txt"  

Als Batchdatei ein wenig lesbarer formatiert und die "Suchmaske" (z.B. "C:\Dokumente und bla\Biber\b*.txt) und das Ziel-Root-Verzeichnis (z.B. "Y:\Eigene Dateien") als Parameter1 und Parameter2 übergeben, sähe es dann ungefähr so aus:

:: ---MoveWithRename.bat
@echo off 
:: ....wenn es im und unterhalb des aktuellen Verzeichnisses gar keine "Suchmaske-"Dateien gibt: forget about it 
dir /b /s /a-d "%~1">Nul || goto :eof  
::  ... mach mir ein SUBST-Laufwerk namens B:
subst b: "~dp1"   
xcopy /t /s "b:\%~nx1" "%~2\*.*"  
for /r b:\ %%i in ("%~nx1") do ECHO move "%%i" "%~2\%%~piZzzZ_%%~nxi"   
subst b: /d
[vor mich hingetippselte, absolut ungetestete Skizze]

@AnwenderDummy
Aber ernsthaft helfen werde ich auch erst dann, wenn Du auch mal auf den Tisch legst, was Du nun schon vorliegen hast. Denn wahrscheinlich hast Du einen ganz anderen Lösungsweg eingeschlagen - und den können wir nur zu Ende führen, wenn Du Deine Skizze postest.

Gruß
Biber