18074
Goto Top

Datei jede 5. Minute kopieren lassen und automatisch neuen Namen vergeben!

Hallo an alle Profis,

hätte jemand die Zeit mir ein Skript zur Verfügung zu stellen oder zu helfen, wie ich automatisch alle 5 Minuten eine *.dta Datei kopiere oder umbennene??


Näher erklärt:
Es handelt sich dabei um eine Datei namnes "standard_01.dta"
Ich will, dass sich diese alle 5 Minuten in standard_03.dta kopiert oder umbennent (in den selben Zielordner).

Es kann sein, dass gerade die Datei standard_01.dta gerade in Verwendung ist und deswegen ist ein mögliche Zugriffsverweigerung vorhanden, aber ich will auch dies umgehen und egal ob sie verwendet wird oder nicht, will ich dass sich diese Datei kopiert oder umbennent.

Der Umbenennungsvorgang soll immer laufen, egal ob nach Neustart oder nicht.


Ich hoffe, dass mir jemand die notwendige Zeit zur Verfügung stellt und mir diesbezüglcih hilft.

Ich wäre allen sehr dankbar.
mfg

Content-Key: 17349

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

Printed on: April 25, 2024 at 13:04 o'clock

Mitglied: 18074
18074 Oct 07, 2005 at 10:00:57 (UTC)
Goto Top
hallo nochmals,

ich kenne die Variante mit einer .bat datei mit dem inhalt:
Copy c:\file1.txt c:\file2.txt

das problem bei diesem ist nur, dass es nicht im hintergrund läuft. also, wenn ich dies automatisch starten lasse (weiß nciht wie das geht), kommt das schwarze fenster von *bat und es würde dann die person alle 5 minuten stören.

das wäre halt das problem bei dem.

danke
Member: Metzger-MCP
Metzger-MCP Oct 07, 2005 at 10:21:00 (UTC)
Goto Top
Moin moin

Starte die Batch als cronjob auf dem Server. In der Varíation stört sie den User nicht.
Du must dann nur den Netzwerkpfad zu der Datei in die Batch eintragen und das Verzeichnis freigeben denke an NTFS und Freigabe Rechte.

Mfg Metzger
Mitglied: 18074
18074 Oct 07, 2005 at 10:59:38 (UTC)
Goto Top
Mitglied: 18074
18074 Oct 07, 2005 at 11:01:24 (UTC)
Goto Top
Mitglied: 18074
18074 Oct 07, 2005 at 11:28:34 (UTC)
Goto Top
hallo,

hab mir das mit den geplanten tasks angeschaut, jedoch kann man es nur täglich ausführen und es würde auch den user hindern, da sich das ".bat" fenster öffnet.

gäbe es hierfür eine andere lösung?

mfg
danke
Member: Biber
Biber Oct 07, 2005 at 13:06:25 (UTC)
Goto Top
Moin songuku2005,

Ein paar Details Deiner Anforderung verstehe ich nicht und möchte auch ungern vorher programmiertechnische Verrenkungen machen.

Also - meine Haupt-Verständnisprobleme:
- ich sehe weder den Sinn in einem Kopieren einer Datei alle 5 Minuten unter einem neuen Namen
- und den Sinn eines Umbenennens trotz Zugriffsverletzung alle 5 Minuten schon gar nicht.
- und dass Du das (die Zugriffsverletzung) umgehen willst, finde ich schon interessant. Vielleicht kann ich dann für die Praxis noch etwas von Dir lernen. Welche Strategie würdest Du denn vorschlagen zum Umbenennen einer gerade benutzten Datei im laufenden Betrieb?

Der lösbare Teil (alle x Minuten eine Kopie anlegen):
Wenn sich bei Dir ein Task nur stundenweise starten lässt (was ich ja nicht bezweifeln will, mich aber schon erstaunt), dann musst da ja wohl:

- Batchjob (oder VBScript oder JScript oder was auch immer) permanent in einem nicht sichtbaren Fenster mitlaufen lassen
- der Batch soll in einer Endlos-Schleife 5 Minuten warten (Batch mit Sleep.exe, TimeOut.exe, Wait.exe oder einem ähnlichen Utility; VB- und JScript können das selbst)
- den LfdNr-Datei-Zähler um 1 erhöhen
- eine weitere Kopie anlegen
- sich wieder für 5 Minuten aufs Ohr legen.

An welcher Stelle gibt es denn Schwierigkeiten? Eine TimeOut.exe ist inzwischen sogar in M$'s ResKit dabei.

Biber
Member: superboh
superboh Oct 07, 2005 at 14:48:10 (UTC)
Goto Top
@Biber:
Das überrascht mich jetzt aber, von Dir zu hören man müsse in Batch-Dateien auf Nicht-Standard-Tools ausweichen um eine Pause der Dauer x zu machen face-smile

Ein ping localhost -n 301 >NUL wartet genau 300 Sekunden. Und ich denke er verbrät auch nicht allzuviel Systemresourcen.

Gruss,
Thomas
Member: coli
coli Oct 07, 2005 at 20:14:34 (UTC)
Goto Top
Const OverwriteExisting = TRUE
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.CopyFile "C:\FSO\standard_03.dta" , "D:\Archive\" , OverwriteExisting


die 5 minuten kannst sicher auch über eine schleife realisieren ...
Mitglied: 18074
18074 Oct 07, 2005 at 20:45:21 (UTC)
Goto Top
hallo, vorerst mal großen dank an alle die mir helfen wollten.

ich habe das problem mittlerweile gelöst. hab den befehl copy in einen anderen ordner verwiesen und das klappt jetzt.

danke trotzdem an alle.

mfg
Member: Biber
Biber Oct 07, 2005 at 21:49:57 (UTC)
Goto Top
@superboh
Ach Thomas, die Ping.exe verwende ich aus Trotz nicht mehr ohne Not - seit M$ es bei WinNT tatsächlich mal gebracht hat, dass die ein Errorlevel von 0 zurückgegeben hat, wenn die IP nicht erreichbar war (haben die inzwischen gefixt, aber so etwas vergess ich nie *gg).
außerdem: im Sourcecode ist ein "TimeOut 300" oder "Sleep 300" irgendwie lesbarer als ein "Ping -n 301 localhost >nul" ... solche Zeilen verwirren immer unsere Praktikanten, die Bätche zu lesen und zu verstehen versuchen. So was muss nicht sein.

*flüstert* P.S. Ich finde die Anforderung oben so neben der Spur... verstehst Du den tieferen Sinn darin??? Alle 7 Minuten, das fände ich ja okay.., *kopfschüttelt
Member: jap
jap Oct 08, 2005 at 12:31:11 (UTC)
Goto Top
@Biber

wenn der Praktikant Ping -n 301 localhost >nul einmal verstanden hat,
dann hat er doch etwas sinnvolles im Praktikum dazugelernt face-smile
evtl. noch nen Kommentar davor, dann versteht´s auch der Praktikant.

.. nicht so erst gemeint.

Jap
Member: Biber
Biber Oct 08, 2005 at 13:12:51 (UTC)
Goto Top
@jap

...hast eigentlich recht.
Außerdem: Ein "ping -n 301 localhost" sieht besser aus im Praktikumsbericht.
Einige schreiben da sonst wirklich rein: "Und dann hab ich ein Sleep 300 gemacht (=5 Minuten geschlafen)..."
face-wink
Member: Metzger-MCP
Metzger-MCP Oct 10, 2005 at 16:27:33 (UTC)
Goto Top
@ Praktikant sleep 300 face-smile
machen das Praktikanten nicht immer ? sollte sich da was geändert haben seit meiner Prktikumszeit ?

gut damals hieß es nit 300 sonder Anfang < Mittagessen > Ende

Mfg Metzger

P.s muß auch mal eine nicht Produktive Antwort geben. face-sad