PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Batch Datei erstellen - wie?


cereal
2006-11-07, 14:00:08
Hallo Leude,

und zwar habe ich folgende Aufgabenstellung, bei dir ich Hilfe benötige:

Ich will eine Batch Datei schreiben, die folgendes macht:

Es gibt einen Ornder Test. Darin ist die datei xx.csv und yy.csv.

Das batchprogramm soll überprüfen, wie alt diese beiden dateien sind.

sind sie älter als 30 min, dann löschen und von einem anderen pfad neu reinkopieren, ansonsten dort belassen.

geht das irgendwie?

danke

mfg

cereal

(del)
2006-11-07, 23:04:54
Per Batch wirst du das nicht hinbekommen.

Batch-Programme können nicht selbstständig (be)rechnen. Und das ist eine Grundvoraussetzung für die Ermittlung des Alters eines Datei, egal ob in Minuten oder Tagen. Dafür wird eine Backgroundapplikation benötigt, auf die das Batchfile zugreifen kann. Themen, die sich in diese Richtung bewegen, findest du auf administrator.de (http://www.administrator.de/L%F6schen_von_Dateien%2C_die_%E4lter_als_x_Tage_sind_%28Windows%29.html). Dort gibt es eine große Community speziell zum Thema Batch-Programming und deren Tücken.

Mfg Mayday

cereal
2006-11-08, 13:15:50
...nicht berechnen, aber vergleiche aufstellen?

teh j0ix :>
2006-11-08, 13:31:11
Hmm ich glaub ich hab in dem von Mayday genannten Forum sowas schonmal gelesen, weiss aber nicht mehr genau ob es mit VB oder per Batch realisiert wurde. Schau dich da einfach mal ein wenig um.

Lokadamus - nixBock
2006-11-08, 13:31:38
mmm...

Zwecks vergleichen kenne ich auch keinen Weg. Gegenfrage, kannst du nicht einfach einen Task erstellen, der alle 30 Minuten einfach die Dateien neu kopiert?Hmm ich glaub ich hab in dem von Mayday genannten Forum sowas schonmal gelesen, weiss aber nicht mehr genau ob es mit VB oder per Batch realisiert wurde. Schau dich da einfach mal ein wenig um.Auf Batch wüsste ich so keinen Weg, über VBScript müsste es möglich sein, wobei ich nicht wirklich VBScript kann.

-=[SP]=-DRE@MER
2006-11-08, 13:36:57
Oder nimm ein Sync-Programm. (Bzw. Backup-Programm) Damit kannst du das ganz einfach realisieren.

teh j0ix :>
2006-11-08, 13:37:19
mmm...

Zwecks vergleichen kenne ich auch keinen Weg. Gegenfrage, kannst du nicht einfach einen Task erstellen, der alle 30 Minuten einfach die Dateien neu kopiert?

einfach aber genial :biggrin: sollte eigentlich doch vollkommen ausreichen.


@Dreamer viel zu kompliziert ^^

jorge42
2006-11-08, 13:42:52
Robocopy kann das. es gibt den Monitor Modus

/MOT:m :: MOnitor source; run again in m minutes Time, if changed.

kann aber nur mit ganzen Minuten umgehen.
deine kommandozeile müsste dann ungefähr so lauten

robocopy quellpfad zielpfad yy.csv xx.csv /MOT:30

dann wird aber wirklich nur alle 30 Minuten kopiert falls sie sich geändert haben. Änderst du /MOT:1 dann wird das ganze einmal in der minute überprüft ob sich was geändert hat, aber die datei wird dann auch eben früher als alle 30 Minuten kopiert.

cereal
2006-11-08, 15:33:45
fetten dank @all

robocopy kenne ich... schaue mir das gleich mal genauer an :)

cereal
2006-11-08, 15:35:16
fetten dank @all

robocopy kenne ich... schaue mir das gleich mal genauer an :)


WICHTIG: Er soll die Dateien auf jeden Fall alle 30 min ersetzen. Die Dateinamen bleiben gleich.

jorge42
2006-11-08, 15:54:44
WICHTIG: Er soll die Dateien auf jeden Fall alle 30 min ersetzen. Die Dateinamen bleiben gleich.

heisst das SPÄTESTENS alle 30 Minuten oder FRÜHENSTENS nach 30 Minuten. Das macht schon einen unterschied :smile:

Wenn du GENAU 30 Minuten brauchst, kommst du um ein skript nicht herum. wenn du einen simplen copy alle 30 minuten startest, dieser aber genau 1 Minute läuft BEVOR die Dateien sich verändern, dann dauert das wieder 30 Minuten bis die Dateien kopiert werden. Das ist ne Ungenauigkeit von +/- 30 Minuten.

Du müsstest wirklich die Dateien z.B. 1 mal in der Minute nach Änderungen überprüfen und erst dann kopieren wenn die 30 Minuten Unterschied erreicht wurden :| Was möchtest du denn damit erreichen, dass das ganze so genau zeitlich abgestimmt werden muss?

cereal
2006-11-08, 16:15:55
heisst das SPÄTESTENS alle 30 Minuten oder FRÜHENSTENS nach 30 Minuten. Das macht schon einen unterschied :smile:

Wenn du GENAU 30 Minuten brauchst, kommst du um ein skript nicht herum. wenn du einen simplen copy alle 30 minuten startest, dieser aber genau 1 Minute läuft BEVOR die Dateien sich verändern, dann dauert das wieder 30 Minuten bis die Dateien kopiert werden. Das ist ne Ungenauigkeit von +/- 30 Minuten.

Du müsstest wirklich die Dateien z.B. 1 mal in der Minute nach Änderungen überprüfen und erst dann kopieren wenn die 30 Minuten Unterschied erreicht wurden :| Was möchtest du denn damit erreichen, dass das ganze so genau zeitlich abgestimmt werden muss?


es muss nicht genau nach 30 min sein, sondern in etwa im interv. von 30 min.

also im interv. von ca. 30 min soll er die dateien aus ordner x nehmen und durch die in ordner y ersetzen :)

jorge42
2006-11-08, 17:52:53
es muss nicht genau nach 30 min sein, sondern in etwa im interv. von 30 min.

also im interv. von ca. 30 min soll er die dateien aus ordner x nehmen und durch die in ordner y ersetzen :)

ja dann machst du einen task alle 30 minuten mit nem copy oder eben robocopy mit einem 30 min intervall.

cereal
2006-11-08, 19:24:44
ja dann machst du einen task alle 30 minuten mit nem copy oder eben robocopy mit einem 30 min intervall.

hab heute leider keine zeit mehr gefunden,werde mich morgen damit aber intensiv auseinander setzen :)

besten dank schonmal :)