tegee08
Goto Top

Zeiterfassung über Batch Datei

habe 2 Batch Dateien die das Ein- und Ausschalten eines PC protokollieren sollen mit folgendem Inhalt:

zeit_ein.cmd:
echo %Username%; Beginn; %DATE%; %TIME% >> zeit.csv
und
zeit_aus.cmd
echo %Username%; Ende; %DATE%; %TIME% >> zeit.csv

beide Dateien schreiben in die gleiche zeit.csv Datei

funktioniert super, allerdings erscheinen die Datensätze untereinander, so dass dieses Ergebnis zu Stande kommt:

test; Beginn; 23.01.2009; 16:50:02,09
test; Ende; 23.01.2009; 16:50:24,93

ich würde es lieber haben, dass die zeit_aus.cmd den Datensatz mit einem Semikolon getrennt hinter den Datensatz der zeit_ein.cmd schreibt, also so:

test; Beginn; 23.01.2009; 16:50:02,09; test; Ende; 23.01.2009; 16:50:24,93

Hintergrund ist, dass ich es bei der Auswertung deutlich leichter habe

Content-Key: 106967

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

Ausgedruckt am: 28.03.2024 um 12:03 Uhr

Mitglied: 60730
60730 23.01.2009 um 17:17:16 Uhr
Goto Top
Servus,

ob dein Vorhaben legal ist?

Und was passiert, wenn sich zuerst Thomas und dann test anmelden und in anderer Reihenfolge abmelden?

Von daher überlege nicht nur die legalität deines Vorhabens, sondern auch, ob eine An und AB oder besser zwei An & Ab getrennt .csv nicht doch die bessere Lösung ist.
Hintergrund ist, dass ich es bei der Auswertung deutlich leichter habe
Besorg dir erstmal das OK von oben, denn Benutzerverhalten "auszuspionieren" und eine Arbeitsliste anhand der Computernutzung zu erstellen ist in der BRD AFAIK IMHO verboten.

Gruß
Mitglied: bastla
bastla 23.01.2009 um 17:18:23 Uhr
Goto Top
Hallo tegee08!

Das lässt sich in VBS leichter realisieren:

zeit_ein.vbs
CreateObject("Scripting.FileSystemObject").OpenTextFile("C:\zeit.csv",8,1).Write _  
CreateObject("WScript.Network").Username &";" & "Beginn;" & Date & ";" & Time  
zeit_aus.vbs
CreateObject("Scripting.FileSystemObject").OpenTextFile("C:\zeit.csv",8,1).WriteLine _  
";" & CreateObject("WScript.Network").Username & ";" & "Ende;" & Date & ";" & Time  
Grüße
bastla

[Edit]
@timobeil: Zustimmung zu Deinen Vorbehalten sowohl technischer als auch rechtlicher Art ...

Ob es wohl, sollte tatsächlich auf diese Weise versucht werden, Arbeitszeiten festzuhalten, in nächster Zeit öfter vorkommt, dass Benutzer Problemen beim Herunterfahren des Rechners vermeiden wollen, indem sie diesen einfach ausschalten? 0face-smile
[/Edit]
Mitglied: tegee08
tegee08 23.01.2009 um 17:31:23 Uhr
Goto Top
Hallo Timo,

danke für den Hinweis, allerdings geht es nicht darum einen User auszuspionieren, sondern eher den PC.
Du hast aber Recht, die Überschrift hätte ich anders formulieren sollen.

Die Idee mit den 2 getrennten "Log Files" finde ich gut.

Der thomas ist natürlich der gleiche wie Test, nämlich der Username. War mein Fehler und ist korrigiert.
Mitglied: tegee08
tegee08 23.01.2009 um 17:35:15 Uhr
Goto Top
Hallo bastla,

danke für das Script, allerdings bekomme ich immer eine Fehlermeldung

Fehler: Anweisung erwartet
Code: 800A0400
Quelle: Kompilierungsfehler in Microsoft VBScript
Mitglied: bastla
bastla 23.01.2009 um 17:43:00 Uhr
Goto Top
Hallo tegee08!

Haben eben beide Scripts nochmals aus meinem Kommentar kopiert und ohne Probleme unter XP getestet ...

Grüße
bastla
Mitglied: tegee08
tegee08 23.01.2009 um 17:52:22 Uhr
Goto Top
ich kenne mich mit VBS nicht so gut aus, aber bei mir kommt immer der Fehler

ich habe es so in der Datei stehen:

CreateObject("Scripting.FileSystemObject").OpenTextFile("C:\zeit.csv",8,1).Write _

CreateObject("WScript.Network").Username &";" & "Beginn;" & Date & ";" & Time

und vorher habe ich eine zeit.csv angelegt
Mitglied: bastla
bastla 23.01.2009 um 17:59:18 Uhr
Goto Top
Hallo tegee08!

Das von mir gepostete Script hatte nur 2 Zeilen - eine Leerzeile kommt da nicht vor ...

und vorher habe ich eine zeit.csv angelegt
Das war (dem Script gegenüber) sehr zuvorkommend face-wink, aber schlicht unnötig (stört aber auch nicht).

Grüße
bastla
Mitglied: tegee08
tegee08 23.01.2009 um 18:02:30 Uhr
Goto Top
wie peinlich.....jetzt geht es

vielen Dank
Mitglied: Biber
Biber 23.01.2009 um 18:17:07 Uhr
Goto Top
Moin tegee08,

auch wenn es jetzt "funk-ti-o-niert", wie wir hier im Forum sagen.... das stimmt so nicht.
It works as designed..., das würde ich gelten lassen.

Unabhängig davon und die rechtlichen Bedenken und die zu erwartenden Akzeptanzprobleme sowie den Schaden fürs Betriebsklima mal aus der Diskussion rausgelassen...

  • Ein Logfile ist immer mit Zeitstempel + max ein Ereignis pro Zeile aufgebaut.
  • Wenn Du bestimmte Ereignisse hinterher logische nebeneinander halten bzw. darstellen willst, ist dafür ein anderes Tool nötig - ein LogParser oder LogAnalyser.
  • wie willst du denn mit dem (erwarteten) Standard-Fehler "Anmeldung ohne Abmeldung" oder "zwei Anmeldungen hintereinander oder protokollierte Abmeldung" umgehen?? Was steht denn dann in einer bastla'schen Logfilezeile?

Bitte lass uns doch hier im Forum nicht auf dem Niveau der handwerklichen Umsetzbarkeit verharren... wir können hier mehr.

Denn nur pures "request fulfillment" ist der Job von bezahlten Serviceprovidern, die Dir ohne Nachfragen und Einwände zum Festpreis 230 Codezeilen pro Stunde zusammenplockern können.

Quantität möchte ich aber nicht als die zentrale Vision unseres Forums haben.

Grüße
Biber
Mitglied: tegee08
tegee08 23.01.2009 um 18:41:55 Uhr
Goto Top
Hallo Biber,

vom Grundsatz her gebe ich dir vollkommen Recht, allerdings soll mir das Script nur über einen gewissen Zeitraum (vielleicht 2 Wochen) helfen, die Laufzeiten eines PC zu protokollieren, danach hat es ausgedient.

Die Fehlermeldungen sind sicher vorprogrammiert, das ist mir klar, aber für den Zeitraum kann ich damit leben.

Ich brauchte eben eine schnelle kurze Lösung.

Schöne Grüße
tegee08