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

Laufzeit bzw. Dauer einer Batch ermitteln!

Frage Entwicklung Batch & Shell

Mitglied: Andichrist

Andichrist (Level 1) - Jetzt verbinden

05.02.2008, aktualisiert 07.02.2008, 16819 Aufrufe, 10 Kommentare

Stoppuhrfunktion mit Angabe der verstrichenen Zeit für eine Batchdatei auch ohne 4NT bzw. Take Command von jpsoft möglich?

Moin moin,

ich möchte gerne die Dauer einer Batchdatei (von dem Aufruf bis zur Beendigung der Batch) ermitteln.

Derzeit setze ich als Behelfslösung wegen des Befehls "Timer" 4NT ein. Ich hätte aber gerne eine generelle Lösung für die Standard CMD-Shell für Windows XP, die kein Geld kostet!

Der Befehl startet beim ersten Aufruf "timer" (4NT-CMD-Shell OUTPUT:Stoppuhr 1 an: 06:56:45) und wird beendet durch einen zweiten Aufruf "timer" (4NT-CMD-Shell OUTPUT: Stoppuhr 1 aus: 06:57:55 Verstrichene Zeit: 0:01:09,91)

Der Aufruf und Auswertung des Befehl "timer" (mit 4NT) in der 4NT-CMD-Shell sieht hierbei folgender maßen aus:

01.
@echo off & setlocal 
02.
 
03.
:: 1. Aufruf der Funktion Timer unter 4NT (Timer-OUTPUT: Stoppuhr 1 an: 06:56:45) 
04.
timer 
05.
.. 
06.
 
07.
... 
08.
... <<sonstiger Code>> 
09.
... 
10.
 
11.
... 
12.
 
13.
 
14.
:: Timer wird in LOG-Datei mit protokolliert! 
15.
:LOG 
16.
:: 2. Aufruf der Funktion Timer unter 4NT 
17.
timer > stop.txt 
18.
:: ermitteln  der Position des Wertes der verstrichenen Zeit (Timer-OUTPUT: Stoppuhr 1 aus: 06:57:55  Verstrichene Zeit: 0:01:09,91) 
19.
FOR /F "tokens=7" %%i in (stop.txt) do set stop=%%i 
20.
if not exist "Log". md "Log" 
21.
@echo --- Dauer: --- %stop% --- >> LOG/History.txt 
22.
del stop.txt >nul 
23.
 
Ich würde mich freuen, wenn jemand noch eine schlaue Idee hätte die "Timer"-Funktion von 4NT mit anderen Hilfsmitteln zu lösen!

Viele Grüße
Andichrist
Mitglied: bastla
05.02.2008 um 12:13 Uhr
Hallo Andichrist!

Nur zum Spaß ein Lösungsansatz in native Batch (ansonsten würde ich VBS verwenden):
01.
@echo off & setlocal  
02.
 
03.
:: Startzeit (in Hundertstelsekunden) holen und speichern 
04.
call :GetTime 
05.
set "Startzeit=%t%" 
06.
set "Start=%TimeInHSec%" 
07.
echo %Startzeit% 
08.
 
09.
:: Zum Testen eine ... 
10.
PAUSE 
11.
 
12.
:: Endzeit (in Hundertstelsekunden) holen und speichern 
13.
call :GetTime 
14.
set "Endzeit=%t%" 
15.
set "End=%TimeInHSec%" 
16.
echo %EndZeit% 
17.
 
18.
:: Ermittlung und Zerlegung/Formatierung der Differenz 
19.
set /a Diff=%End%-%Start% 
20.
:: Tageswechsel beachten 
21.
if %Diff% lss 0 set /a Diff+=8640000 
22.
 
23.
set DiffRem=%Diff% 
24.
:: Hundertstelsekunden holen 
25.
call :GetPart 100 
26.
set hs=%Part% 
27.
:: Sekunden holen 
28.
call :GetPart 60 
29.
set s=%Part% 
30.
:: Minuten holen 
31.
call :GetPart 60 
32.
set m=%Part% 
33.
:: Stunden bleiben als Rest 
34.
set h=%DiffRem% 
35.
 
36.
::Ausgabe der Differenz 
37.
echo Dauer: %h%:%m%:%s%,%hs% 
38.
goto :eof 
39.
 
40.
 
41.
:GetTime 
42.
:: Aktuelle Zeit verwenden ... 
43.
set t=%time% 
44.
:: ... zerlegen ... 
45.
for /f "tokens=1-4 delims=:," %%i in ("%t%") do set "h=%%i" & set "m=%%j" & set "s=%%k" & set "hs=%%l" 
46.
:: ... Oktalzahlklippen umschiffen ... 
47.
if %m:~0,1%==0 set m=%m:~1% 
48.
if %s:~0,1%==0 set s=%s:~1% 
49.
if %hs:~0,1%==0 set hs=%hs:~1% 
50.
:: ... und in Hundertstelsekunden-Wert umrechnen. 
51.
set /a TimeInHSec=((%h%*60+%m%)*60+%s%)*100+%hs% 
52.
goto :eof 
53.
 
54.
:GetPart 
55.
::Anhand des Aufrufparameters (60 oder 100) aufspalten ... 
56.
set /a Part=%DiffRem%%%%1 
57.
:: ... und mit fuehrender Null formatieren sowie ... 
58.
if %Part% lss 10 set Part=0%Part% 
59.
:: ... noch aufzuteilenden Rest der Differenz ermitteln. 
60.
set /a DiffRem=%DiffRem%/%1 
61.
goto :eof
Die Startzeit wird (überraschender Weise ) in %Startzeit% gespeichert und kann natürlich bei Bedarf zB mit
01.
echo %Startzeit%>>LOG/History.txt
protokolliert werden.

Zum Testen wird die jeweilige Start- und Endzeit auch auf dem Bildschirm ausgegeben.

Die Endzeit und die formatierten Teile (h,m,s und hs) der berechneten Differenz werden danach ebenfalls in Variablen abgelegt.

Grüße
bastla
Bitte warten ..
Mitglied: Andichrist
07.02.2008 um 02:17 Uhr
Hallo bastla,

Aufgabe in kürzester Zeit mit Bravur gelöst!

Funktioniert einwandfrei!

Danke und Gruß
Andichrist

PS: Falls jemand einmal die Muße hat, ein kleines Kommadozeilen Progrämmchen (EXE oder COM) zu schreiben mit der Funktionalität, würde ich mich auch sehr freuen!
Bitte warten ..
Mitglied: 94502
15.10.2010 um 15:59 Uhr
Würde nicht funktionieren
set times=%time:~6,-3%
set timem=%time:~3,2%
set timeh=%time:~0,2%

...

set times2=%time:~6,-3%
set timem2=%time:~3,2%
set timeh2=%time:~0,2%

set difs=%times2%-%times%
set difm=%timem2%-%timem%
set difh=%timeh2%-%timeh%

echo %difh%:%difm%:%difs%
Bitte warten ..
Mitglied: MisterExpulso
17.10.2010 um 00:34 Uhr
Zitat von Andichrist:
PS: Falls jemand einmal die Muße hat, ein kleines Kommadozeilen Progrämmchen (EXE oder COM) zu schreiben mit der
Funktionalität, würde ich mich auch sehr freuen!

Hallo Andichrist,
hab dir das mal in C# zusammengeschrieben - auf Wunsch kann ich dir es auch als exe-Datei zur Verfügung stellen.

01.
using System; 
02.
using System.Collections.Generic; 
03.
using System.Text; 
04.
using System.IO; 
05.
 
06.
namespace schreiben 
07.
08.
    class Program 
09.
10.
        static void Main(string[] args) 
11.
12.
            StreamWriter FileWriter = File.CreateText(@"c:\text.txt"); 
13.
            DateTime startdt = DateTime.Now; 
14.
            string start = DateTime.Now.ToString("hh:mm:ss"); 
15.
            /* 
16.
             *      sonstiger Code  
17.
             */  
18.
            string ende = DateTime.Now.ToString("hh:mm:ss"); 
19.
            string zeit = DateTime.Now.Subtract(startdt).ToString(); 
20.
            FileWriter.WriteLine("Stoppuhr 1 aus: " + ende + " Verstrichene Zeit " + zeit.Substring(0,8) + " Startzeit " + start); 
21.
            FileWriter.Close(); 
22.
23.
24.
}
MfG
DB
Bitte warten ..
Mitglied: pieh-ejdsch
27.10.2010 um 21:09 Uhr
Hi ...,

BeispielZeiten: Format: Stunden:Minuten:sekunden
Start: 12:15:55
Ende: 12:16:40

Nein! Funktioniert so nicht da
1. set mit Parameter /a rechnet
set /a difs=2-1
2. Zeitüberhang von kleiner zu größer als Negativwert ausgegeben wird
40 sek - 55 sek = -15 sek
-> muss also wieder plus 60 bei sek gerechnet werden um die Differenz auszurechnen.

3. Beim Zeitüberhang wenn kleiner zu größer Negativ gewesen wäre muss in der nächstgrößeren Einheit eins mehr abgezogen werden
Falsch: 16 min - 15 min = 1 min
Richtig: 16 min - 15 min - 1 min = 0 min

4. Bei Stunden zu Tagen entsprechend plus 24 ( millisek zu sek plus 100 ) beim Negativen Ergebnis

5. Für set /a: mindestens 08 und 09 zu 8 und 9 umschreiben (wie Bastlas Batchzeile 46. bis 49. beschreibt / macht )

Gruß Phil
Bitte warten ..
Mitglied: Viewfinder
25.07.2012 um 02:24 Uhr
Zitat von Andichrist:
>....

PS: Falls jemand einmal die Muße hat, ein kleines Kommadozeilen Progrämmchen (EXE oder COM) zu schreiben mit der
Funktionalität, würde ich mich auch sehr freuen!


Irgendwann
http://www.administrator.de/contentid/188502
Bitte warten ..
Mitglied: Viewfinder
25.07.2012 um 02:31 Uhr
Zitat von bastla:
Hallo Andichrist!

Nur zum Spaß ein Lösungsansatz in native Batch (ansonsten würde ich VBS verwenden):
...

Grüße
bastla

Hallo bastla
Aus Spaß wird "Ernst"

Danke. War ne nette Vorlage zur Übung.
http://www.administrator.de/contentid/188502

Grüße
Viewfinder
Bitte warten ..
Mitglied: bastla
25.07.2012 um 11:33 Uhr
Hallo Viewfinder und willkommen im Forum!
War ne nette Vorlage zur Übung.
Freut micht, wenn der Ansatz auch in dieser Hinsicht nützlich war - wobei ich allerdings
würde ich VBS verwenden
nochmals betonen möchte ...

Grüße
bastla
Bitte warten ..
Mitglied: Viewfinder
26.07.2012 um 02:19 Uhr
Hallo bastla,
nachdem ich nun mit der ersten Konfrontation durch bin, hörst Du nicht den leissesten Wiederspruch.

Gibt es einen Weg alles auf einmal zu lernen?

Grüße
Viewfinder
Bitte warten ..
Mitglied: bastla
26.07.2012 um 09:38 Uhr
Hallo Viewfinder!
Gibt es einen Weg alles auf einmal zu lernen?
Wenn Du genug Zeit hast: Learnig by Doing ...

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Batch oder PS um Datenvolumen zu ermitteln
gelöst Frage von rudeboyBatch & Shell13 Kommentare

Guten Morgen zusammen, ist es möglich mit Hilfe von Batch oder PS-Skript die über die Netzwerkschnittstelle übertragene Datenmenge zB ...

Windows 10
Künstlich Prozessorauslastung erzeugen (Laufzeit von Stick-PC unter Last an Powerbank ermitteln)
gelöst Frage von Server-NutzerWindows 102 Kommentare

Hallo Leute, ich möchte die Laufzeit eines Asus-Stick-PC (5 Volt Versorgung) an einer Powerbank ermitteln. Wie kann ich mit ...

Batch & Shell
Laufzeit eines Windows Batch auf Windows Server unerträglich hoch
Frage von Scar61Batch & Shell1 Kommentar

Hallo zusammen, ich beobachte gerade , dass auf einem Windows Terminalserver (2012 R2) ein Batch Skript, das zum Starten ...

Batch & Shell
Batch: robocopy - nur verbleibende Dauer anzeigen (ohne Dateinamen)
gelöst Frage von FabixxBatch & Shell4 Kommentare

Hallo, ich arbeite zur Zeit an einem kleinen Backup Batch mittels robocopy /mir. Funktioniert auch einwandfrei. Allerdings würde ich ...

Neue Wissensbeiträge
Datenschutz

Weitere Inforamtionen zum Sicherheitsproblem BeA

Information von Penny.Cilin vor 16 MinutenDatenschutz

Im folgenden ein weiterer Bericht über die Sicherheitsprobleme von Bea. Fataler Konstruktionsfehler im besonderen elektronischen Anwaltspostfach Gruss Penny

Windows 10

Systemdienste behalten nach Win10 inplace-Upgrade nicht die ggf. modifizierte Startart bei

Tipp von DerWoWusste vor 1 StundeWindows 103 Kommentare

Stellt Euch vor, Ihr habt ein Win10 System und modifiziert dort die Startart von Systemdiensten. Zum Beispiel wollt Ihr ...

Microsoft Office

Deaktivieren von Startbildschirm und Backstage-Ansicht in Office 2016 per Batch-Datei

Anleitung von SarekHL vor 4 StundenMicrosoft Office17 Kommentare

Guten Morgen zusammen! Ich habe mir gestern (auch mit Hilfe dieses Boards) ein Script gebastelt, um in Office 2016 ...

Erkennung und -Abwehr

Sicherheitslücke Spectre und Meltdown: Status prüfen

Anleitung von Frank vor 10 StundenErkennung und -Abwehr2 Kommentare

Nach all den Updates der letzten Woche sollte man unbedingt auch den Status prüfen, ob die Sicherheitslücken Spectre, Meltdown ...

Heiß diskutierte Inhalte
Netzwerke
NTFS-Berechtigung
Frage von Daoudi1973Netzwerke23 Kommentare

Hallo zusammen und frohes neues Jahr (Sorry, ich bin spät dran) Meine Frage: 1- Ich habe einen Ordner im ...

Microsoft Office
Deaktivieren von Startbildschirm und Backstage-Ansicht in Office 2016 per Batch-Datei
Anleitung von SarekHLMicrosoft Office17 Kommentare

Guten Morgen zusammen! Ich habe mir gestern (auch mit Hilfe dieses Boards) ein Script gebastelt, um in Office 2016 ...

Drucker und Scanner
Gesucht DIN A3 Drucker
Frage von NebellichtDrucker und Scanner15 Kommentare

Hallo, ich möchte einen neuen DIN A3 Drucker kaufen. Um ab und zu, ca. 1 mal die Woche Farbausdrucke ...

E-Business
Bankgeheimnis abgeschafft - wie kann ich mich wehren?
Frage von honeybeeE-Business13 Kommentare

Hallo, ich nehme Bezug auf diesen Artikel: Als ich das gelesen habe, wurde mir schlecht Es geht ja niemanden ...