online 1
gast (50)

/ Forum / Anwendungen(Java,C++...)

Anwendungen(Java,C++...)Anwendungen(Java,C++...)

Fragevon Anno2005 vom 26.01.2020, 21:53 Options

Datum vergleichen im Batchprog.

Hallo zusammen

Ich möchte in einem Batchprogramm das aktuelle Datum
mit einem Datum aus einer Datei (Datlog.txt) vergleichen.
Das Datum steht immer in der letzten Zeile und hat
das Format TT.MM.JJJJ.Nur wenn das Datum aus der Datei
gleich oder älter als 30 Tage ist, dann soll
xcopy "D:\Eigene Downloads\*.*" G:"\Eigene Downloads" /s /d /y
ausgeführt werden.
Mit welchem Code wäre das machbar?

PS: Betriebssystem XP-Home SP2

Schönen Abend noch.


Antwort schreiben

Antwort 1 von Mikoop vom 26.01.2020, 23:04 Options

Hallo,

Lies mal diesen Thread, speziell Antwort 4 und 5.
Das sollte dir helfen können.

Gruss, Mikoop

Antwort 2 von Anno2005 vom 26.01.2020, 23:38 Options

Hallo Mikoop
Danke erstmal für deine Antwort!
Leider kann ich nicht sehr viel damit Anfangen
Da ich auf dem Gebiet der Programmierung Laie bin.
Wenn möglich hätte ich gerne einen fertigen Code den ich nur
Kopieren brauche und gut.

Bis denn

Antwort 3 von kicia vom 28.01.2020, 07:28 Options

Dieses Script kann das, was Du willst, denke ich.

(Ich übernehme aber keine Verantwortung für eventuelle Schäden oder Datenverluste und weise darauf hin, daß das Script Fehler enthalten könnte und geprüft werden sollte)

Zum starten:
den Code in eine Datei mit der Endung .js kopieren, auf die Datei rechtsklicken, öffnen.

getLogDate();

//---------------------------------------------------
//-- aktuelles Datum mit Datum in Datei vergleichen
//---------------------------------------------------
function getLogDate()
{
	var timeDiff = 30 * 24 * 60 * 60 * 1000; // gewünschte Zeitdifferenz in Millisekunden
	var actDate = new Date();
	var t = loadfile("Datlog.txt");
	t = t.substr( t.lastIndexOf(".") - 5 );  // letzten Eintrag finden
	t = t.split(".");
	t = t[1] + "/" + t[0] + "/" +t[2];       // Monat und Tag vertauschen
	t = Date.parse(t);                       // Millisekunden errechnen
	t = actDate.getTime() - t;               // Differenz in Millisekunden errechnen
	if( t > timeDiff )
	{
		copyFiles();
	}
}

//----------------------------------
//-- kopieren
//----------------------------------
function copyFiles()
{
	var FolderA = "\"D:\\Eigene Downloads\\*.*\"";
	var FolderB = "\"G:\\Eigene Downloads\"";
	var WshShell = WScript.CreateObject("WScript.Shell");
	WshShell.Run("xcopy " + FolderA + " " + FolderB + " /s /d /y");
}


//----------------------------------
//-- Datei laden
//----------------------------------
function loadfile(FileName)
{
	var fso,f1;
	var FileStr = "";
	fso = new ActiveXObject("Scripting.Filesystemobject");
	if(fso.FileExists(FileName))
	{
		f1 = fso.OpenTextFile(FileName, 1);
		if(f1.AtEndOfStream) msg("Fehler: Die Datei ist leer"); else FileStr = f1.ReadAll();
		f1.close();
	}
	else { msg("Datei nicht gefunden! --->" + FileName + ""); }
	return FileStr;
}

//----------------------------------
function msg(s) { WScript.Echo(s); }

Antwort 4 von Anno2005 vom 28.01.2020, 20:43 Options

@ kicia

Vielen Dank für deine große Mühe die du dir gemacht hast!!!
Da das Script jedoch Fehlerhaft sein kann wie du schreibst
trau ich mich nicht es laufen zu lassen .
Ich selbst kann es nicht auf etwaige Fehler prüfen und kenne
auch niemanden der es könnte.
Bevor ich meinen Rechner schrotte lass ich es lieber erstmal sein.
Trotzdem nochmal meinen Herzlichsten Dank

gruß Anno

Antwort 5 von TomG vom 29.01.2020, 08:32 Options

Hallo Anno,

also das finde ich jetzt ziemlich krass!
Erst stellst Du hier eine Anfrage rein, bekommst eine mehr als ausführliche Anleitung mit dafür geschriebenen Code und willst es dann nicht einmal testen! An Kicia´s Stelle würde ich mir da ziemlich vera.... vorkommen.

Es ist doch normal, dass hier niemand Gewähr gibt für seinen eigenen Code. Etwas solltest Du schon selbst tun.

Nichts für ungut
Thomas

Antwort 6 von Solo vom 29.01.2020, 09:47 Options

Hi,
du kannst es aber auch hiermit versuchen:
http://www.winsoftware.de/kw-s-datenbackup,47,9107.htm

KW´s Datenbackup
Lizenz: Freeware
Sprache: Deutsch
Version: 1.7.7
Betriebssystem: Windows 95/98/ME/NT/2000/XP
Dateigröße: 3774 KByte

Mit KW´s Datenbackup werden Backups automatisch und im Hintergrund abwickelt. Sie können definierte Dateien, oder Verzeichnisstrukturen mit Hilfe einer Filterfunktion zu definierten Zeitpunkten automatisch in verschiedenen Verzeichnissen oder Laufwerken sichern. Alte Dateien können nach einer bestimmten Anzahl von Tagen automatisch gelöscht oder umbenannt werden. Mit Hilfe von Skripts können Sie die Sicherung komplett steuern.

Antwort 7 von xmax vom 29.01.2020, 09:48 Options

Zitat:
Wenn möglich hätte ich gerne einen fertigen Code den ich nur
Kopieren brauche und gut.
- antwort 2
Zum starten:
den Code in eine Datei mit der Endung .js kopieren, auf die Datei rechtsklicken, öffnen.
- antwort 3
Zitat:
Bevor ich meinen Rechner schrotte lass ich es lieber erstmal sein.
Trotzdem nochmal meinen Herzlichsten Dank
-hi @Anno2005, wenn du nicht mal in der lage bist deinen rechner auf solche fälle zu vorbereiten, wie willst du dann erfahren, ob eine angebotene lösung überhaupt funktioniert.
durchs handauflegen?

trotzdem wünsche ich dir, dass sich hier jemand findet der dir das "risiko" deinen rechner zu schrotten abnimmt.

schönen tag noch.

Antwort 8 von Jaja vom 29.01.2020, 09:55 Options

@Anno:

auch von mir mal ne rüge - das kanns ja wohl nicht sein!

Zitat:
(Ich übernehme aber keine Verantwortung für eventuelle Schäden oder Datenverluste und weise darauf hin, daß das Script Fehler enthalten könnte und geprüft werden sollte)


das ist ne standard floskel, die ihre berechtigung hat und jeder seriöse programmierer auch einfügt, um alle eventualitäten abzudecken..

kennst du den spruch bei bekanntgabe der lottozahlen oder von wahlergebnissen?

"alle angaben ohne gewähr.." - das trifft die sache schon.

spielst du deswegen kein lotto mehr oder gehst nicht mehr wählen?

Antwort 9 von xmax vom 29.01.2020, 09:57 Options

Nutzungsbedingungen:
Das Herunterladen und die Installation der hier bereitgestellten Software erfolgen auf eigene Gefahr. Die Winsoftware.de GmbH & Co.KG übernimmt keine Gewährleistung oder Haftung für etwaige Schäden, die durch die Installation entstehen können (bspw. Viren, Datenverlust). Die Nutzer verzichten auf jedwede Ansprüche gegen die Winsoftware.de GmbH & Co.KG, die sich aus diesem Vorgang ergeben können. Mit dem Herunterladen der Software erkennen die Nutzer diese Nutzungsbedingungen an.

Weiter zum Download von KWs Datenbackup 2.5.2 Freeware... - ach du kacke, so ein pech...

Antwort 10 von Anno2005 vom 29.01.2020, 22:58 Options

Hallo @all

Ich verstehe ja eure Aufregung.Kicia hat sich ja auch große
Mühe gemacht,aber wenn ich mir das Script als absoluter
Laie mal anschaue dann meine ich daraus schließen zu
können,daß der Ersteller doch schon einige Kenntnisse
besitzen muss um sowas komplexes zu Programmieren.
Wenn er dann zudem noch schreibt er könne Schäden
(welcher Art auch immer) nicht ausschließen,dann werd ich einen Teufel tun und den Code ausprobieren.Den wenn ich
genau wüßte was der Code abarbeitet dann hätte ich auch
keine Anfrage gestartet.
Wenn man kicia's Antwort mal sehr genau liest dann steht
dort
(.......und geprüft werden sollte.)
Frage: von wem???
Von mir dem Laien???
Mir ist auch durchaus bewusst das keiner für seine Scripte
eine Gewährleistung in irgendeiner Form gibt.

An dieser Stelle nochmal ein DANKE an kicia!

gruß Anno

Antwort 11 von kicia vom 30.01.2020, 07:32 Options

Hallo,

ich freue mich darüber, daß man hier Wertschätzung meiner Arbeit zum Ausdruck gebracht hat und "sich auf meine Seite stellt" (tut mir leid, mir fällt keine bessere Formulierung ein).

Ich freue mich auch über das freundliche "danke" von Anno.

Ich bin etwas enttäuscht, daß mein Code nicht verwendet wird, jedoch war es nicht allzuviel Arbeit, da ich schon Teile davon fertig hatte, außerdem hat es mir Spaß gemacht und ich lerne selber viel dadurch.
Vielleicht kanns ja später mal wer brauchen.

Ich denke, die Kommentare oben haben ihre Gültigkeit insofern, daß es ja auch anders hätte sein können.

Annos Anfrage machte auf mich den Eindruck, daß er schon etwas Vorkenntnisse besitzt und bereit und imstande ist, meinen Code ausreichend zu verstehen. Das halte ich einfach für ein Mißverständnis (wessen Schuld das Mißverständnis ist, sollten wir in einem Philosophieforum klären ;) ).
So kann ich Annos Befürchtungen auch verstehen.

Ich muß zugeben, daß ich faulerweise auch ein bischen erwartet hatte, daß sowieso irgendjemand sowas schreibt wie "das ist doch blödsinn kicia, daß muß richtig sounso heißen".

Zu meinem Code (ich muß leider jetzt erst recht sagen: folgendes ohne Gewähr):
Ich bin mir hauptsächlich nicht sicher, ob ich das mit dem Datum richtig gemacht habe.
Unabhängig davon ist die einzige riskante Zeile die mit WshShell.Run(...);, alle anderen Fehler würden zu einer Fehlermeldung führen aber nichts kaputt machen.
Die Zeile steht in der Funktion copyFiles(), also könnte man zum testen den Code wie folgt abwandeln:
	if( t > timeDiff )
	{
		msg("wird kopiert");
	}
	else
	{
		msg("wird nicht kopiert");
	}

copyFiles() wird nicht ausgeführt, sondern nur die Meldung ausgegeben.
Den xcopy - kram habe ich einfach aus Annos Anfrage übernommen (kleine Änderung: G:"\Eigene..." --> "G:\Eigene..." ), kurz getestet, mich aber nicht weiter damit beschäftigt.

Gruß an alle,

kicia

Antwort 12 von Anno2005 vom 01.02.2020, 18:01 Options

@ kicia

Danke für deinen letzten Beitrag
Ich hoffe das sich dadurch einige wieder beruhigt schlafen legen können.

Anno

Antwort 13 von kicia vom 02.02.2020, 13:34 Options

Hallo nochmal ,

nunja, "wieder schlafen legen" klingt vielleicht doch wieder etwas zu bissig. Sagen wir vielleicht besser "daß die Gemüter sich beruhigen".

Immerhin decken sich die obigen Beiträge größtenteils inhaltlich auch mit dem, was ich dazu gedacht habe. Nur habe ich das ganze eben als Mißverständnis und nicht als "Beleidigung" oder böse gemeint oder so aufgefasst. Ich glaube, das ist in meinem Beitrag etwas zu kurz gekommen.

freundlichen Gruß an alle,

kicia

Ähnliche Themen

vergleichen
offi  23.04.2008 - 88 Hits - 5 Antworten

Datum im Textformat umwandeln
wolpi27  06.06.2008 - 152 Hits - 1 Antwort

Datum aus php mit Datum aus sql vergleichen
Mossili  30.06.2008 - 98 Hits - 2 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026