Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

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, 4226 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
gelöst Führende Nullen hinzufügen (6)

Frage von Erik72 zum Thema Batch & Shell ...

Microsoft Office
gelöst Bedingte Formatierung in Excel, wenn zweite Dezimalstelelle nicht eine Null ist (11)

Frage von winget zum Thema Microsoft Office ...

Datenbanken
Informix SE Tabelle alle Felder auf NULL prüfen (4)

Frage von RalfHackmann zum Thema Datenbanken ...

Neue Wissensbeiträge
Sicherheit

Millionen Euro in den Sand gesetzt?

(2)

Information von transocean zum Thema Sicherheit ...

Sicherheit

How I hacked hundreds of companies through their helpdesk

Information von SeaStorm zum Thema Sicherheit ...

Erkennung und -Abwehr

Ccleaner-Angriff war nur auf große Unternehmen gemünzt

(10)

Information von Lochkartenstanzer zum Thema Erkennung und -Abwehr ...

Heiß diskutierte Inhalte
Humor (lol)
gelöst Freidach Beitrag (40)

Frage von Penny.Cilin zum Thema Humor (lol) ...

Firewall
gelöst Firewall Firmeneimsatz (22)

Frage von wiesi200 zum Thema Firewall ...

Multimedia & Zubehör
gelöst 8 GB USB Stick besitzt nur noch 4 MB Kapazität (13)

Frage von Gwahlers zum Thema Multimedia & Zubehör ...