Batch Script zum kopieren und prüfen von dateien

  • #1
C

Casper2k

Guest
Hallo Leute,

möchte ein Script erstellen mit welchem ich einen geplanten kopiervorgang starte.
das file soll aber erst kopiert werden, wenn ein anderes file vorhanden ist.

ich versuch mal noch genauer zu erklären:

es wird ein file angelegt (der name ändert sich immer und ist somit nicht fix) - z.b. AA12345.ert. dazu wird noch ein file AA12345.md5 angelegt. das md5 file (enthält die checksumme) wird aber erst dann erstellt, wenn das ert file fertig geschrieben wurde.
so lange existiert das md5 file logischerweise nicht. so lange dieses nicht existiert, soll
das *.ert file auch nicht kopiert werden (weil noch daten reingeschrieben werden)

das script soll nun alle datei-paare (*.ert und *.md5) in ein anderes verzeichnis kopieren.

hat jemand ne idee mit welchen script ich das prüfen und kopieren kann ?

hoffe es kann mir jemand helfen.


cu
casper
 
  • #2
mit if exists abprüfen ob die md5 datei existiert, dann die beiden dateien in ein verzeichnis moven

:anfang
if exist c:\verzeichnis\*.md5 nul goto verarbeiten
:verarbeiten
move c:\verzeichnis\*.md5 c:\anderes_verzeichnis
move c:\verzeichnis\*.ert c:\anderes_verzeichnis
goto anfang

usw.

greetz

hugo
 
  • #3
ja soweit bin ich auch schon.

ich muss aber den * abfangen da in das verzeichnis mehrere md5 files sowie ert files abgelegt werden.
es sollen aber immer nur dateipaare kopiert werden wenn das md5 file mit dem selbigen ert file vorhanden
ist.
dein script würde ja alle files mit endung ert und md5 wegkopieren, unabhängig von vorhanden sein gleicher
dateipaare.

z.b.:

abcde.md5
abcde.ert
abbad.ert
ertzer.ert

liegen im verzeichnis. jetzt soll geprüft werden, ob ein md5 file da ist (abcde.md5). wenn wie in dem fall eins da
ist, soll nur abcde.ert und abcde.md5 wegkopiert werden. die anderen beiden ert files haben ja noch kein passendes
md5 file, deshalb sollen die liegen bleiben.

hoffe ich konnte es einigermassen verständlich ausdrücken.
 
  • #4
Hi,

mit der IF-Abfrage bei Dateien wirst hier nicht weit kommen, da hier kein Platzhalter zulässig ist.

Versuche es mal mit FOR:

mov.bat
Code:
@echo off
for %%F in (E:\test\*.md5) do arbeite.bat %%~dpnF %%~nF
pause

nun da man nur einen Befehl angeben kann nach DO wird einfach hier eine Datei aufgerufen und zwei Parameter übergeben,
%1 der vollständige Dateiname mit Laufwerk(d) +Pfad(p) +Dateiname(n) aber ohne Erweiterung
%2 hier nur der Dateiname ohne Erweiterung
diese Datei nenne ich einfach mal arbeite.bat

arbeite.bat
Code:
move %1.md5 e:\gemoved\%2.md5
move %1.ert e:\gemoved\%2.ert

Ich habe dieses Script erfolgreich getestet, musst es aber noch an deine Bedürfnisse anpassen, also Laufwerksbuchstaben und Verzeichnise.
Viel Spaß damit
 
  • #5
Hey!

ich danke dir. werds mal testen und rückmeldung geben!

thx
casper
 
Thema:

Batch Script zum kopieren und prüfen von dateien

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.963
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben