Führende Nullen in Zahlen löschen
Hallo Batchler,
es geht um Auswertung von Datum- und Stunden-Zahlen. Da kommen bisweilen auch führende Nullen vor.
Nun wollte ich die drei Variablen in einer Doppel-Schleife bereinigen. Leider ohne positivem Ergebnis.
folgendes Problem gilt es zu lösen:
AT1d: --24-- AT1h: --09-- AT1m: --28--
Doppel-Schleife
AT1d: --24-- AT1h: --09-- AT1m: --28--
Berechnung
Ungültige Zahl. Nummerische Konstanten sind entweder dezimale (17),
hexadezimale (0x11) oder oktale (021) Zahlen.
Danke schon jetzt für die freundliche Unterstützung.
max5moritz
es geht um Auswertung von Datum- und Stunden-Zahlen. Da kommen bisweilen auch führende Nullen vor.
Nun wollte ich die drei Variablen in einer Doppel-Schleife bereinigen. Leider ohne positivem Ergebnis.
folgendes Problem gilt es zu lösen:
AT1d: --24-- AT1h: --09-- AT1m: --28--
Doppel-Schleife
AT1d: --24-- AT1h: --09-- AT1m: --28--
Berechnung
Ungültige Zahl. Nummerische Konstanten sind entweder dezimale (17),
hexadezimale (0x11) oder oktale (021) Zahlen.
For /F "tokens=1,4,5 Delims=.: " %%i in ('dir /tc "%timLog%"^|Find /i "%txc%"') Do @(
set "AT1d=%%i"&set "AT1h=%%j"&set "AT1m=%%k")
echo AT1d: --!AT1d!--&echo AT1h: --!AT1h!--&echo AT1m: --!AT1m!--
FOR %%i IN (!AT1d:~0,1!,!AT1h:~0,1!,!AT1m:~0,1!) DO @if %%i equ 0 set AT=%%i & For %%j IN (AT1d,AT1h,AT1m) DO @set "%%j=!AT:~1,1!"
echo AT1d: --!AT1d!--&echo AT1h: --!AT1h!--&echo AT1m: --!AT1m!--
if "%mont2:~-2,2%"=="ja" echo AT1d: --!AT1d!--&echo AT1h: --!AT1h!--&echo AT1m: --!AT1m!--
set /A ATm=(%AT1h%*60)+%AT1m%
Danke schon jetzt für die freundliche Unterstützung.
max5moritz
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 197616
Url: https://administrator.de/contentid/197616
Ausgedruckt am: 21.11.2024 um 21:11 Uhr
6 Kommentare
Neuester Kommentar
Hallo max5moritz.
Am einfachsten geht das mit einer FOR /F Schleife. Das Prinzip sieht so aus:
Grüße
rubberman
PS: Wenn der eingehende String IMMER 2-stellig ist, wäre auch folgendes denkbar:
<code type="plain>set /a "num = 1%string%, num %%= 100"
Am einfachsten geht das mit einer FOR /F Schleife. Das Prinzip sieht so aus:
set "string=09"
set /a num=0
for /f "tokens=* delims=0" %%i in ("%string%") do set /a num=%%i
echo %num%
Grüße
rubberman
PS: Wenn der eingehende String IMMER 2-stellig ist, wäre auch folgendes denkbar:
<code type="plain>set /a "num = 1%string%, num %%= 100"