Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Zeit messen zum Erstellen von Dateien mit batch möglich

Frage Entwicklung Batch & Shell

Mitglied: Bischoff

Bischoff (Level 1) - Jetzt verbinden

15.07.2008, aktualisiert 22:58 Uhr, 13655 Aufrufe, 7 Kommentare

Hi,

bin gerade dabei ein Batch zu erstellen, um die Perfomance von Anti-Viren Scannern wie Symantec und Sophos zu teste.
Dieser Batch erstellt mehrere Dateien (Variabel) und soll dann die Zeit messen, die benötigt wird, um die Dateien zu erstellen
z.B für 200 Dateienn 3,2 Sekunden oder so etwas in der Art.

Hatte schonmal en andren Threat aufgemacht, indem wurde mir gesagt bei machen Windows Versionen gibt es den Befehl "Timethis"
diesen gibts bei dieser Version leider nicht...

Jetz wollt ich mal fragen obs noch ne andre möglichkeit gibt da z.B beim ping ja auch die Zeit gemessen wird.

Hoffe mir kann jemand helfen hier mal der code der jetzigen Datei:


Timethis Dateienerstellen.cmd

@echo off
set nr=0
set limit=5

:schleife
echo abc[%nr%] >>%0\..\abc%nr%.cmd
set /a nr=%nr%+1

echo erstelle %nr%.cmd

if not %nr% == %limit% goto schleife

pause



Mit freundlichen Grüßen
Mitglied: uebeltat
15.07.2008 um 08:24 Uhr
Bin zwar nicht der Batch-Profi, aber mein Denkansatz wäre folgender:

Zum Begin der Batch mit "echo %TIME%" die aktuelle Zeit abfragen, nach dem Durchlaufen der Batch die Zeit abfragen und beides in ne Art Log-Datei schreiben. Oder (wie auch immer man dies anstellt, ist aber garantiert möglich) beide Zeiten subtrahieren um die benötigte Zeit in Sekunden zu erhalten...

Wenn sich keiner offenbart werde ich mich mal dransetzen...

LG
Bitte warten ..
Mitglied: Bischoff
15.07.2008 um 08:28 Uhr
Hmm

das hört sich schonmal nich schlecht an...
Nur ich bin da auch nich der Profi hab bis vor kurzer Zeit noch nie
mit Batches zu tun gehabt :P

mal schaun ich probiers mal

thx
Mit freundlichen Grüßen
Bitte warten ..
Mitglied: harald21
15.07.2008 um 08:42 Uhr
Hallo,

probier mal folgendes:

echo | time > time.log
Damit wird die aktuelle Uhrzeit in das Logfile geschrieben. Wenn du das zu Beginn und am Ende deiner Batch einfügst, so kannst du hinterher (manuell) die Laufzeit berechnen.

Mit freundlichen Grüßen
Harald
Bitte warten ..
Mitglied: Bischoff
15.07.2008 um 09:02 Uhr
Also habs jetzmal mit 2 versionen Versucht :P

1.
echo | time >time.log
.
.
code
.
.
echo | time >time.log

pause

Da passiert garnichts...also es wird auch kein Logfile erstellt.



2.
echo | time >>%0\..\time.log



echo | time >>%0\..\time.log


pause


Hier kommt dann diese Meldung in der logdatei:

Aktuelle Zeit: 9:01:41,24
Geben Sie die neue Zeit ein: ECHO ist eingeschaltet (ON).
Eingegebene Zeit kann nicht bernommen werden.
Geben Sie die neue Zeit ein: Aktuelle Zeit: 9:01:41,43
Geben Sie die neue Zeit ein: ECHO ist eingeschaltet (ON).
Eingegebene Zeit kann nicht bernommen werden.
Geben Sie die neue Zeit ein:


Versteh nicht warum er da das zweite mal die Zeit nicht übernimmt
Bitte warten ..
Mitglied: uebeltat
15.07.2008 um 09:05 Uhr
Du musst vor und nach "time" noch % setzen.

Also richtig wäre: echo %TIME% >> time.log



Grund: Mit "echo time" rufst du den Dos-Befehl "time" auf, der ein eigenständiges Programm ist und mit dem du auf Dos-Ebene die Uhrzeit ändern kannst.

Für deine Zwecke ist aber der Inhalt der Variablen %TIME% von Bedeutung
Bitte warten ..
Mitglied: Bischoff
15.07.2008 um 09:27 Uhr
Aaaja

jetz funktionierts danke.

Mit freundlichen Grüßen
Bitte warten ..
Mitglied: ChrisNick
15.07.2008 um 22:58 Uhr
ECHO OFF

SETLOCAL
CALL :GET_NOW
SET now=%return%
CALL :COMP_CSEC %return%
SET start=%return%

REM Ausführen der Aufgabe
DIR *.* > NUL

CALL :GET_NOW
CALL :COMP_CSEC %return%
CALL :COMP_TIME %start% %return%

REM Info ausgeben i. e. Datei
ECHO Startzeit %now:~0,19% Es hat %return% sec gedauert >>log.dat

GOTO :EOF

:GET_NOW
SET return=%TIME%_%DATE%
IF "%return:~0,1%" EQU " " SET return=0%return:~1%
SET return=%return:~18,4%-%return:~15,2%-%return:~12,2% %return:~0,11%
GOTO :EOF

:COMP_CSEC
SET zeit=%*
SET hours=%zeit:~11,2%
SET mins=%zeit:~14,2%
SET secs=%zeit:~17,2%
SET csec=%zeit:~20,2%
IF "%hours:~0,1%" EQU "0" SET hours=%hours:~1%
IF "%mins:~0,1%" EQU "0" SET mins=%mins:~1%
IF "%secs:~0,1%" EQU "0" SET secs=%secs:~1%
IF "%csec:~0,1%" EQU "0" SET csec=%csec:~1%
SET /A return="((hours * 60 + mins) * 60 + secs) * 100 + csec"
GOTO :EOF

:COMP_TIME
SET /A return=%2 - %1
IF %return% LSS 0 SET /A return=%return% + 8640000
IF "%return:~0,-1%" EQU "" SET return=0%return%
IF "%return:~0,-2%" EQU "" SET return=0%return%
SET return=%return:~0,-2%,%return:~-2%
GOTO :EOF
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Router & Routing
gelöst Empfehlung günstiges ADSL2+ nur Modem (10)

Frage von TimMayer zum Thema Router & Routing ...

Server-Hardware
Lenovo Server System X 3650 M5 Festplatten (9)

Frage von Hendrik2586 zum Thema Server-Hardware ...