Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Batch Programmierung

Empfohlene Antworten

Veröffentlicht

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????

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.

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ß

@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

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".

ok ... danke euch jungs =)

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.