FloBerlin Geschrieben 8. Oktober 2009 Teilen Geschrieben 8. Oktober 2009 Hallo @ all, Ich sitze zur Zeit an einer Batch, welche mir beim Anmelden (via Anmeldeskript) eine %date%.txt erstellt und die aktuelle Uhrzeit reinschreibt. Wenn ich mich dann Abmelde wird in die *.txt via Abmeldeskript die Endzeit reingeschrieben. Das funzt auch alles soweit, jedoch will ich mir beim Abmelden die Zeit vom Anmelden bis hin zum Abmelden ausrechnen lassen. Hat jemand eine Idee?? vlt. eine globale Variable???? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
lupo49 Geschrieben 8. Oktober 2009 Teilen Geschrieben 8. Oktober 2009 Du könntest das aktuelle Datum auslesen mit Tag im Monat, Stunde, Minute und Sekunde bei der Anmeldung und dann bei der Abmeldung dieses wiederholen und zwischen den einzelnen Werten die Differenz berechnen. Alternativ: Zu Beginn den momentanen Timestamp in Unixtime umwandeln, bei der Abmeldung das wiederholen und die Differenz zwischen den beiden Unixtime-Werten ausrechnen. Anschließend den Wert der Differenz zurück wandeln in ein lesbares Format. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Madej Geschrieben 8. Oktober 2009 Teilen Geschrieben 8. Oktober 2009 Hi, wenn du in cmd "systeminfo" eingibtst, wird dir so einiges angezeigt zb. auch die Systembetriebszeit. Die Systembetriebszeit fängt an zu laufen, sobald das System läuft und hört es damit auf wenn es aus ist. D.h. Wenn du dich nach 4 Stunden abmeldest, nach einer Stunde dich wieder anmeldest wäre die Systembetriebszeit bei 5 Stunden. @echo off systeminfo>daten.txt for /f "delims=" %%i in ('findstr "Systembetriebszeit" daten.txt') do echo %%i>ausgabe.txt" del daten.txt Ich hab mal ein Script erstellt. Ich glaub nicht dass des ist was du genau suchst. Mal eine andere Idee: Du erstellst eine txt beim Anmelden und eine beim Abmelden. Du könntest dann einer Batch die Uhrzeiten von den zwei Dateien einlesen und aufteilen. Dannach könntest die Dauer berechnen. @echo off set StundeAnmelden= %a set MinutenAnmelden= %b set StundeAbmelden= %c set MinutenAbmelden= %d set /A d= StundeAbmelden - StundeAnmelden set /A e= MinutenAbmelden - MinutenAnmelden echo Sie waren %%d %%e Stundenangemeldet Es wäre nicht schlecht, wenn du deine jetzige Batch postet dann könnte ich dir ggf. helfen. Gruß Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
lupo49 Geschrieben 8. Oktober 2009 Teilen Geschrieben 8. Oktober 2009 @echo off set StundeAnmelden= %a set MinutenAnmelden= %b set StundeAbmelden= %c set MinutenAbmelden= %d set /A d= StundeAbmelden - StundeAnmelden set /A e= MinutenAbmelden - MinutenAnmelden echo Sie waren %%d %%e Stundenangemeldet Das Skript funktioniert zunächst nicht, weil da %-Zeichen bei der Subtraktion fehlen. Des Weiteren geht die Funktion verloren, sobald sich der Mitarbeiter bspw. nach 23:59 abmeldet oder generell länger als 24 Stunden arbeitet. set StundeAnmelden=16 set MinutenAnmelden=0 set StundeAbmelden=4 set MinutenAbmelden=0 Ausgabe: E:\>foo.bat Sie waren -12 0 Stundenangemeldet Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Madej Geschrieben 8. Oktober 2009 Teilen Geschrieben 8. Oktober 2009 sobald sich der Mitarbeiter bspw. nach 23:59 abmeldet oder generell länger als 24 Stunden arbeitet. Ja ist klar, hab ich vergessen zu erwähnen. Ist halt die Frage ob so gearbeitet wird . Ist auch die Frage ob jeder Mitarbeiter seinen eigenen PC hat., weil wenn nicht dann melden die sich oft nur ab, damit der nächste denn nicht wieder anschalten muss und somit würde die Möglichkeit mit dem systeminfo auf wegfallen. Deine Vorschlag erscheint mir doch am einfachsten und "sichersten". Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
FloBerlin Geschrieben 8. Oktober 2009 Autor Teilen Geschrieben 8. Oktober 2009 ok ... danke euch jungs =) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.