Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Mit Zeit rechnen ?

Mitglied: Nowologix

Nowologix (Level 1) - Jetzt verbinden

05.01.2008, aktualisiert 20.01.2008, 14599 Aufrufe, 8 Kommentare

Hi
ich wollte ne zeit rechnung für eine batch datei schreiben.
kam auch ein kleines stück weit.
hab mich dann hier im forum umgeschaut aber da war nichts vergleichbares.

hab am anfang

set %time%=TStart

und am ende

set /a TEnd=%TStart%-%time%
@echo %TEnd%


nach adam riese sollte dann die sekunden differez rauskommen...
aber ich bekomme "fehlender opperator" zurück

verständlich da er die Zeit mit ihren Doppelpunkten ( als rechen operatoren sieht


How i can lös das ?

:- (



hoffe ihr könnt mir helfen
Mitglied: Biber
05.01.2008 um 16:15 Uhr
Moin nowologix,

Zeit und Datum werden im Batch/am CMD zwar angezeigt, sind aber nur Texte.
Rechnen kann man/frau nicht damit, es existiert kein Datentyp "Datum" oder "Zeit" im Batch.

Du kannst allerdings den angezeigten Zeit- oder Datumswert (stehen in den Variablen %time% bzw. %date%) zerlegen und die Struktur auflösen.

Am CMD-Prompt wäre ein Test mit %time%
01.
for /f "delims=:, tokens=1-3" %i in ("%time%") do Set /a TStart=%i*3600+%j*60+k 
02.
for /f "delims=:, tokens=1-3" %i in ("%time%") do Set /a TEnde=%i*3600+%j*60+k 
03.
Set /a TDauer=TEnde-TStart
Grüße
Biber
aber ich bekomme "fehlender opperator" zurück
Heißt Du eine spezielle Ruhrpott-Version von XP?
Bitte warten ..
Mitglied: Nowologix
06.01.2008 um 00:33 Uhr
Da bekomme ich " "timei*3600+j*60+k" ist syntaktisch an dieser Stelle nicht verarbeitbar. " zurück...
und ich verstehe den code nicht :- /


Habe das problem etwas anders gelöst:



set TStart=%time:~6,-3%

...
..
.
..
...

set TEnd=%time:~6,-3%
set /a TDauer="%TEnd%"-"%Tstart%"
@echo %TDauer%
pause


so jetzt bekomme ich schon die sekundenzahl heraus...
sobald jedoch die voll minute überschritten wird, rechnet er natürlich nur mit 60 Sekunden.
Daher bekomme ich manchmal z.B. "-55 Sec." angezeigt.
(ich benötige ausschließlich eine sekundenanzahl)
Bitte warten ..
Mitglied: Biber
06.01.2008 um 01:06 Uhr
Moin Nowologix,

Da bekomme ich " "timei*3600+j*60+k" ist syntaktisch an dieser Stelle nicht verarbeitbar. " zurück...
Das mag daran liegen, dass meins eine Test-Zeile am CMD-Prompt ist und Du diese im Batch verwendet hat.
Am CMD-Prompt Zählvariablen mit einen %-Zeichen (%i, %j, %k), im Batch mit zweien (%%i, %%j, %%k).
und ich verstehe den code nicht :- /
Vielleicht hilft Dir folgender Zwischenschritt am CMD-Prompt beim Verständnis...
01.
$cmd$for /f "delims=:, tokens=1-3" %i in ("%time%") do @echo [%time%] hh:%i mm:%j Sec:%k
Aber egal ob mit FOR/F-Anweisung oder mit der Substr-Funktion: Die Stunden/Minuten und Sekunden müssen in einen Wert "in Sekunden" umgerechnet werden.
Und beim "Rechnen" musst Du beachten, dass bei Minuten und Sekunden auch "08" und "09" als Werte geliefert werden können - diese führen wegen der führenden "0" zu Problemen und müssen vorher zu gültigen Zahlen 8 bzw 9 gemacht werden.

Grüße
Biber
Bitte warten ..
Mitglied: Biber
06.01.2008 um 12:28 Uhr
Moin Nowologix,

Nachtrag.
Falls Du auch VBScript benutzen kannst/darfst, ist das Leben etwas einfacher.
In VBScript existiert u.a. eine Funktion "Timer", die immerhin die "Sekunden seit Mitternacht" mit zwei Nachkommastellen zurückgibt.

Wenn Du dieses Feature nutzen willst...
01.
::--- TestTimer.cmd 
02.
@echo off & setlocal 
03.
Set "ct=%temp%\CallTimer.vbs" 
04.
Set "callct=cscript //nologo "%ct%"" 
05.
echo WScript.echo int(Timer) >"%ct%" 
06.
For /f %%i in ('%callct%') do set TStart=%%i 
07.
pause 
08.
For /f %%i in ('%callct%') do set /a TDauer=%%i - TStart 
09.
@echo Dauer %TDauer% Sekunden 
10.
Del "%ct%"
Das ganze temporäre VBS-Snippet besteht aus der Halbzeile " WScript.echo int(Timer)" und liefert die Sekunden seit Mitternacht als Integer zurück.

Grüße
Biber
Bitte warten ..
Mitglied: bastla
06.01.2008 um 18:47 Uhr
... und wenn Du nach der Berechnung von %TDauer% (mit welcher Methode auch immer) noch die Zeile
01.
if %TDauer% lss 0 set /a TDauer+=86400
einfügst, sollte nix mehr schiefgehen können ...

Grüße
bastla
Bitte warten ..
Mitglied: Biber
06.01.2008 um 20:03 Uhr
@bastla
...einfügst, sollte nix mehr schiefgehen können ...
...sollte eigentlich nix mehr schiefgehen können ...

Es sei denn ein Batch läuft mal dreieinhalb Wochen (oder allgemeiner: länger als einen Tag).
Ob etwas 2 Sekunden oder einen Tag plus 2 Sekunden gedauert hat, das kann die Timer-Funktion genausowenig auseinanderhalten wie manuell zerlegte %time%-Aufdröselungen.
Wenn es also für alle Widrigkeiten der Bätcherei geeignet sein soll, dann wäre man/frau nur mit einem DateDiff()-Vergleich auf der sicheren Seite.
[OT]
Was ich interessant finde ist, dass ausgerechnet die Beiträge, bei denen frühzeitig geschrieben wird "geht nicht!" (verdeckte Passworteingabe, Laufbalken, Papierkorb umbenennen, Datumsberechnungen,..) sich immer tagelang hinziehen...
[/OT]

Grüße
Biber
Bitte warten ..
Mitglied: Biber
13.01.2008 um 19:13 Uhr
Sach ma', Nowologix,

sind bastla und ich auf gutem Weg mit unseren Kommentaren, sollen wir weitermachen oder lieber anderen Strategien den nötigen Raum zur freien Entfaltung in diesem Thread lassen oder wie machen wir hier weiter?

Grüße
Biber
Bitte warten ..
Mitglied: Nowologix
20.01.2008 um 03:10 Uhr
^^ nein sorry problem ist gelöst...

hab das ganze jetzt so gelöst:
Batch:

Zeit nehmen
zeit in sekunden kürzen (z.B.:20)
batch weiterlaufen lassen
wider zeit nehmen (z.B.:50)
50-20=30 Sekunden lief die batch datei
wenn ergebniss ein "-" hat dann +60

sie läuft eh zu 100% unter 30 sekuden...

Vielen Dank für die hilfe
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Powershell kann nicht rechnen
gelöst Frage von MarabuntaBatch & Shell3 Kommentare

eigentlich ganz simpel das steckt in einer while schleife und wird daher wiederholt, die schleife hat hiermit aber nichts ...

CPU, RAM, Mainboards
Rechner abgeschmiert
gelöst Frage von ddjangoCPU, RAM, Mainboards8 Kommentare

moin heute morgen wollte ich meinen rechner starten, fahrt bis zur hälfte hoch und friert dann ein. ausgemacht, wieder ...

PHP
Datum Rechner
gelöst Frage von michi-ffmPHP6 Kommentare

Hey Leute, evtl kann mir jemand helfen und mir folgenden Skript erklären und sagen wie ich das Jahr dazubekommen ...

Erkennung und -Abwehr
Traffic auf einem Rechner
gelöst Frage von DeathNoteErkennung und -Abwehr7 Kommentare

Hallo. Ich habe einen Rechner, den ich neu installiert habe, der ganz viel Verkehr auf 62.156.209.112 und 114 macht. ...

Neue Wissensbeiträge
E-Mail
Email-Apps und Verhalten bei Pop3
Erfahrungsbericht von kfranzk vor 1 TagE-Mail7 Kommentare

Hallo Freunde, da mir mein diesbezüglicher Faden als gelöst markiert wurde, muss ich hier neu aufsetzen. Ich arbeite bewusst ...

Hyper-V

Optimiertes Ubuntu per Microsoft Hyper-V-Schnellerstellung verfügbar

Anleitung von Frank vor 1 TagHyper-V

Für Microsofts Virtualisierungssoftware Hyper-V ist ab sofort auch ein optimiertes Ubuntu 18.04.1 LTS verfügbar. In der "Hyper-V-Schnellerstellung" App, die ...

Sicherheits-Tools

Trend Micro WorryFree Business Security (WFBS) 10 - neuer Patch 1470 verfügbar

Tipp von VGem-e vor 1 TagSicherheits-Tools1 Kommentar

Servus, mal sehen, ob mit Patch 1470, zu finden unter dann die angeblich fehlerhafte Funktion, die unter W10 im ...

Server-Hardware

Lösung für Ersatz eines defekter Raid-Controllers

Anleitung von wellknown vor 2 TagenServer-Hardware4 Kommentare

Hallo, da ich nichts gefunden habe und selbst eine Lösung brauchte, hier eine kleine Anleitung für alle die vor ...

Heiß diskutierte Inhalte
Windows Server
Mit der alten Domäneprofil anmelden ohne Server
gelöst Frage von SyosseWindows Server37 Kommentare

Hallo Jungs Folgendes Szenario: Ich habe bei einem sehr kleinen Unternehmen (2Personen) den Server migriert, soweit hat alles geklappt. ...

Sicherheits-Tools
Virenprogramm lässt Programme nicht starten
Frage von SurferGirlSicherheits-Tools23 Kommentare

Hallo, ich bin neu hier, ich hoffe ich habe die richtige Rubrik gewählt. Falls nicht, tut es mir leid. ...

Windows Server
SQL Server Instanz (Eplan) auf WIN 2008 RC2 Server frisst RAM ohne Limit
Frage von derinderinderinWindows Server17 Kommentare

Hallo Zusammen, Wir haben hier einen Windows 2008 RC2 Server. Darauf läuft ein SQL Server Express 2014 Version 12.0.4232.0. ...

Windows 10
Best Practice für Schulungsräume
Frage von Sn0wFoxWindows 1016 Kommentare

Hallo, leider bin ich auch nach langer Suche nicht auf eine zufriedenstellende Nicht-Cloud-Lösung gestoßen und wollte mal Fragen ob ...