
77575
12.05.2013
Prüfen ob Variable nur aus Zahlen besteht
Hallo,
ich habe ein batch skript das mit 2 variablen aufgerufen werden soll.
wobei die erste variable ein zahl sein muss.
jetzt möchte ich prüfen ob die variable nur aus zahlen besteht. die variable besteht nicht nur aus einer zahl, sondern kann auch aus mehreren zahlen bestehen.
z. bsp. aufruf des skripts:
test.cmd 123 EinWort
mir geht es darum, wenn man sich verschreibt ein fehler ausgegeben wird oder keine zahl angegeben wird ich davon ausgehe das die erste Variable komplett fehlt und ich einen Hinweis ausgebe das die Variable 1 fehlt.
gruss
ich habe ein batch skript das mit 2 variablen aufgerufen werden soll.
wobei die erste variable ein zahl sein muss.
jetzt möchte ich prüfen ob die variable nur aus zahlen besteht. die variable besteht nicht nur aus einer zahl, sondern kann auch aus mehreren zahlen bestehen.
z. bsp. aufruf des skripts:
test.cmd 123 EinWort
mir geht es darum, wenn man sich verschreibt ein fehler ausgegeben wird oder keine zahl angegeben wird ich davon ausgehe das die erste Variable komplett fehlt und ich einen Hinweis ausgebe das die Variable 1 fehlt.
gruss
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 206349
Url: https://administrator.de/forum/pruefen-ob-variable-nur-aus-zahlen-besteht-206349.html
Ausgedruckt am: 21.04.2025 um 10:04 Uhr
10 Kommentare
Neuester Kommentar
Hallo 01-01-01,
etwa so:
Grüße
rubberman
etwa so:
set "first=%1"
set "second=%2"
set "third=%3"
if not defined first (echo kein Argument uebergeben) else (
if not defined second (echo nur ein Argument uebergeben) else (
if defined third echo zu viele Argumente uebergeben
)
)
setlocal EnableDelayedExpansion
if defined first echo("!first!"|findstr /rxc:".[0-9][0-9]*." >nul || echo erstes Argument ist nicht numerisch
endlocal
Grüße
rubberman
... oder als Alternative:
Geprüft wird so, ob der erste Parameter ausschließlich aus den nach "
Die Zuweisung des Parameters zur als "Flag" verwendeten Variablen %OK% sorgt dafür, dass auch ein Aufruf ohne Parameter erkannt wird, da dann %OK% von vornherein "
Grüße
bastla
@echo off & setlocal
set "OK=%~1"
for /f "delims=0123456789" %%i in ("%~1") do set "OK="
if not defined OK echo Kein oder ungueltiger Parameter angegeben
delims=
" angegebenen Ziffern besteht - indem alle Ziffern als Trennzeichen interpretiert werden, kann der Teil nach "do
" nur ausgeführt werden, wenn der Parameter auch mindestens ein davon abweichendes Zeichen enthält.Die Zuweisung des Parameters zur als "Flag" verwendeten Variablen %OK% sorgt dafür, dass auch ein Aufruf ohne Parameter erkannt wird, da dann %OK% von vornherein "
not defined
" ist ..Grüße
bastla
Hallo 01-01-01!
Mögliche Fehlerquellen:
Grüße
bastla
Mögliche Fehlerquellen:
- Du verwendest nicht "
/ixc:
" - dann wird auch Groß-/Kleinschreibung unterschieden. - Wenn der Parameter Umlaute ("München") enthält, müsste die Liste im ASCII-Format vorliegen.
- In der Liste gibt es Leerzeichen oder TABs an Beginn oder Ende der Zeile (verglichen wird immer die gesamte Zeile).
Grüße
bastla