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

Zeitausgabe ohne vorangestellete Null

Frage Entwicklung Batch & Shell

Mitglied: florengray

florengray (Level 1) - Jetzt verbinden

31.07.2007, aktualisiert 02.08.2007, 4196 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 ..
Neuester Wissensbeitrag
Ähnliche Inhalte
VB for Applications
gelöst Access: Spalten ist Anzahl Wenn größer NULL (11)

Frage von Pilger83 zum Thema VB for Applications ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...