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

Zeitausgabe ohne vorangestellete Null

Frage Entwicklung Batch & Shell

Mitglied: florengray

florengray (Level 1) - Jetzt verbinden

31.07.2007, aktualisiert 02.08.2007, 4234 Aufrufe, 6 Kommentare

Hallo,
ich hab schon den Beitrag mit dem Datum gelesen, aber das half mir nicht weiter.

Ich möchte in meinem Schnipsel so etwas wie eine Skriptlaufzeit einbringen.
Dafür muss ich aber mit "Zeit" rechnen.

Mein set /a meckert aber, wenn es z.B. mit 12-08 rechnen muss.

mein Schnipsel: (nur´n Testausschnitt)

set mm1= %time:~9,2%
rem Dazwischen vergeht aber noch Zeit. Nur hier im Testschnipsel nicht.
set mm2= %time:~9,2%


set /a a= %mm2%-%mm1%

echo %a%

Da kommt manchmal so was wie: 1,-69 obwohl da eigentlich 0,irgendwas stehen müsste.

Kann mir da jemand helfen???
Mitglied: Biber
31.07.2007 um 23:25 Uhr
Moin florengray,

im Moment ist es etwas schwierig, auf < code >-Beispiele hier im Forum zu verweisen...
Die meisten werden (vorübergehend) nicht angezeigt wegen dieses ärgerlichen Bugs.

Deshalb würde ich Dich gern mal in ein anderes nettes Forum verweisen:
BatchSkript unter Windows XP/2003 - Knobelaufgabe im MCSEBoard.

Dort ist sowohl dieses "Set /a wirft-Fehler- bei 08/09"-Phänomen beschrieben wie auch Umgehungsstrategien.
Und vor allem auch der Hinweis, das Datumsberechnungen mit CMD.exe-Mitteln und "Set /a" nur Dönekens sind.

Lies dich bitte in den genannten Thread ein - den Rest klären wir dann hier.

Grüße
Biber
Bitte warten ..
Mitglied: florengray
02.08.2007 um 10:46 Uhr
Hallo,
der Link is nicht schlecht.
Nur ich bin noch nicht so fit in Batch! Ich verstehe nicht, was das heißt :~9,2.
Was genau tut jedes Zeichen dort???
Den Syntax habe ich mir von hier kopiert.
Ich bin nur´n Amateur Batcher!!!!
Kannste mir vielleicht erklären was dieser Syntax bedeutet?
Dann klärt sich auch mit Sicherheit, wie ich mein Problem lösen kann.

florengray
Bitte warten ..
Mitglied: Biber
02.08.2007 um 11:48 Uhr
Moin florengray,

diese kryptische Syntax "set mm2= %time:~9,2%" ist nur die CMD-Syntax für eine SubString-Funktionalität.

Am einfachen Beispiel:
01.
Set myVar=test0815 
02.
### Der Variablen myvar wir der String "test0815" zugewiesen 
03.
echo myVar 
04.
### würde "myVar" (genau diesen 5-Zeichen-String) anzeigen 
05.
echo %myvar% 
06.
### würde "test0815" anzeigen
jetzt einen Substring davon:
a) vom Beginn an (=0) die ersten 4 Zeichen -->Ergebnis "test"
01.
echo %myvar:~0,4% 
02.
test
b) vom Ende an die letzten 4 Zeichen
01.
>echo %myvar:~-4% 
02.
0815
Von der aktuellen Zeit (steht IMMER in der Variablen %time% OHNE Dein Zutun) vom 10. Zeichen an 2 Stellen rausflöhen:
01.
>echo Zeit: %time% und jetzt von Zeichen 10 an 2 Stellen: %time:~9,2% 
02.
Zeit: 11:47:35,20 und jetzt von Zeichen 10 an 2 Stellen: 20
01.
>echo Zeit: %time% und jetzt vom Ende an minus 13 Zeichen 2 Stellen: %time:~-13,2% 
02.
Zeit: 11:52:38,19 und jetzt vom Ende an minus 13 Zeichen 2 Stellen: 11
Bitte spiele es mit Deinen Uhrzeit-Einstellungen mal am heimischen CMD-Prompt durch.

Grüße
Biber
Bitte warten ..
Mitglied: florengray
02.08.2007 um 12:12 Uhr
Hallo,
ja das ist genau das was ich wissen wollte! Vielen Dank!
Ich werd es ausprobieren!

Da wir gerade mit Umzug beschäftigt sind, kann es eine Weile dauern bis mein nächster Beitrag kommt!
Also nicht als abgeschlossen ansehen!
Bis bald

florengray
Bitte warten ..
Mitglied: florengray
02.08.2007 um 21:02 Uhr
Hallo
Rechner noch nicht abgebaut!
Eine Frage hab ich noch. Das mit dem Zeit hab ich im Griff!
Wie kann ich z.B. 2839 Millisekunden auf normale Sekunden mit Komma umrechnen?
Ich hab versucht:
set /a laufzeit= %a%/100
--> geht nicht. Kommt nur 0. sollte aber z.B. 0,34 Sekunden kommen.
set /a laufzeit= %a%/0,01
--> geht auch nicht
set /a laufzeit= %a%*(1/100)
--> geht auch nicht
ich hab noch versucht ihm Potenzen beizubringen, aber ich merke, dass er mit den Nachkommastellen ab 0,... nicht zurechtkommt.

Ist das mit Batch realisierbar?
Wenn ja wie?
Freue mich auf Antwort!

Aber Danke schon mal für das mit der Zeit!!!!
Bitte warten ..
Mitglied: Biber
02.08.2007 um 23:32 Uhr
Moin florengray,

ein bisschen verwirrt mich Dein Algorithmus schon mit 2839 Millisecs sind 0,34 sec ?!?.

Na ja, die Mathematik hat sich sicherlich auch weiterentwickelt seit meiner Schulzeit...*seufz*

Aber um auf zwei Teilfragen eine Antwort zu versuchen.

1. Ja, in der Tat: Auf der M$-Shell, also am CMD-Prompt gibt es nur Integer-Quasi-Zahlen.
Keine Nachkommastellen.
Und entsprechend käme bei 50 / 100 nicht 0,5 heraus, sondern 0.
Nicht abgerundet, sondern abgeschnitten.
Ein set /a 999/1000 am CMD-Prompt ergibt 0 und nicht etwa 1 (was 0,999 ja nahelegen würde)
------> Das ist nicht dumm oder blöd oder ärgerlich, sondern das ist einfach so.
Da wir das jetzt alle wissen, dass das nun mal ein reproduzierbares Verhalten bei Verwendung dieses Werkzeugs ist, können wir dementsprechend vorbeugen.

2. Zweite Teilfrage "Ist das mit Batch realisierbar?" --> Alles außer Brotschneiden geht per Batch.

Beispiel:
01.
:: ----Snipp CalcMSecs.bat 
02.
@echo off & setlocal 
03.
If [%1]==[] %0 422839 
04.
REM entweder mit Parameter: 123456 [mSec] aufrufen... 
05.
REM ohne Parmater wird als willkürliches Beispiel 422839 genommen 
06.
Set /a "ms=%1"  
07.
for /f %%i in ('set /a "ms/60000"') do ( 
08.
    for /f %%j in ('set /a "ms %% 60000 / 1000"') do ( 
09.
      For /f %%k in ('set /a "ms %% 1000"') do ( 
10.
        echo %ms% Millisec sind %%i Min %%j,%%k Sec 
11.
))) 
Demo am CMD-Prompt:
01.
(=23:31:27  D:\temp=) 
02.
>e:\Schnipsel\CalsMsecs.bat 333333 
03.
333333 Millisec sind 5 Min 33,333 Sec 
04.
 
05.
(=23:31:28  D:\temp=) 
06.
>e:\Schnipsel\CalsMsecs.bat 654321 
07.
654321 Millisec sind 10 Min 54,321 Sec
So, und nun mach erst Deinen Umzug fertig.... es gibt Wichtigeres im Leben als Bätche..

Grüße
Biber
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Führende Nullen hinzufügen
gelöst Frage von Erik72Batch & Shell6 Kommentare

Hallo ihr Lieben, ich habe folgendes Script und wünsche führende Nullen bei der Ausgabe. Kann mir bitte jemand helfen? ...

Batch & Shell
PDFTK Zeichnungen stempeln mit führender NULL
Frage von Herby-zBatch & Shell4 Kommentare

Hallo zusammen, ich würde gerne mit PDFTK meine Zeichnungen stempeln Die Zeichnungen haben folgendes Format 00026973.pdf, also eine 8-stellige ...

Batch & Shell
Zeitstempel mit führenden Nullen in den Stunden vor 10
gelöst Frage von jan99Batch & Shell4 Kommentare

Moin ! ich generiere einen Zeitstempel wie folgt: FOR /F "tokens=1,2,3,4 delims=/. " %%a in ('date/T') do set CDATE=%%c-%%b-%%a ...

VB for Applications
Access: Spalten ist Anzahl Wenn größer NULL
gelöst Frage von Pilger83VB for Applications11 Kommentare

Hallo zusammen, kurze Frage, wahrscheinlich mega simpl aber komm einfach nicht drauf auch mit google nicht. habe in Access ...

Neue Wissensbeiträge
Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 1 StundeBatch & Shell1 Kommentar

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Humor (lol)

"gimme gimme gimme": Automatischer Test stolpert über Easter Egg im man-Tool

Information von Penny.Cilin vor 3 StundenHumor (lol)5 Kommentare

Interessant, was man so alles als Easter Egg implementiert. Ist schon wieder Ostern? "gimme gimme gimme": Automatischer Test stolpert ...

MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 18 StundenMikroTik RouterOS8 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Sicherheit

Sicherheitslücke in HP-Druckern - Firmware-Updates stehen bereit

Information von BassFishFox vor 19 StundenSicherheit1 Kommentar

Ein weiterer Grund, dass Drucker keinerlei Verbindung nach "auswaerts" haben sollen. Unter Verwendung spezieller Malware können Angreifer aus der ...

Heiß diskutierte Inhalte
Windows Server
RDP macht Server schneller???
Frage von JaniDJWindows Server17 Kommentare

Hallo Community, wir betrieben seit geraumer Zeit diverse virtuelle Maschinen und Server mit Windows Server 2012. Leider haben wir ...

Windows 10
Windows 10 dunkler Bildschirm nach Umfallen
Frage von AkcentWindows 1015 Kommentare

Hallo, habe hier einen Windows 10 Rechner der von einem User umgefallen wurde (Beine übers Knie, an den PC ...

Linux
OpenSource Groupware
Frage von FA-jkaLinux13 Kommentare

Hallo, ich suche eine Groupware als Alternative zum Exchange. Wesentliche Aufgaben sind die Handhabung von E-Mails (persönliche und gemeinsam ...

Windows 10
Bitlocker nach Verschlüsselung nicht mehr aufrufbar!
gelöst Frage von alexlazaWindows 1013 Kommentare

Hallo, ich besitze ein HP ZBook 17 G4 mit einem Windows 10 Pro Betriebssystem. Bei diesem Problem handelt sich, ...