pille69
Goto Top

scripting und usereingaben ueberpruefen

Hallo Leute

ich such eine Loesung um die eingabe eines users zu ueberpruefen.

ich arbeite in einem Team. leider arbeiten hier auch Monkeys. Um die Fehler
Quote so gering wie moeglich zu halten habe ich ein Script geschrieben.
Dieses Script ist menu gesteuert und erledigt alles selbst.
das einzige was der User eingeben muss ist das Subnet - 10.10.10. wie kann
ich die usereingabe ueberpruefen (es sollen nur 3 der vier bloecke einer ip adresse eingegeben werden - also die ersten 3)
der erste block ist immer eine 10 dann ein Punkt dann werte zwischen 1-255
dann nochamls ein Punkt dann wieder ein wert zwischen 1-255. es sollen nur 3
Blocks eingegeben werden wie in dem oberen beispiel

wie kann ich das realisieren. in Google finde ich nichts dazu. normalerweise
wuerde ich sagen die einfachste loesung waehre - diese Monkeys zu feuern.

Greetings
juergen

Content-Key: 78009

Url: https://administrator.de/contentid/78009

Printed on: April 20, 2024 at 15:04 o'clock

Member: Biber
Biber Jan 13, 2008 at 15:16:08 (UTC)
Goto Top
Moin Pille69,

Dieses Script ist menu gesteuert und erledigt alles selbst.
Aha. Eher allgemein oder in einer bestimmten Skript/Programmiersprache?

BTW, was hast Du denn Google gefragt? "monkeys+subnet"? face-wink

Grüße
Biber
Member: Pille69
Pille69 Jan 13, 2008 at 16:28:39 (UTC)
Goto Top
batch scripting

deine google suche wuerde betimmt einige interessante ergebnisse bringen face-wink

batch + check usereingabe, usereingabe ueberpruefen usw
Member: bastla
bastla Jan 13, 2008 at 17:22:08 (UTC)
Goto Top
Hallo Pille69!

Wenn der erste Block ohnehin immer 10 sein soll, warum dann noch eingeben lassen?

Schematisch könnte das etwa so aussehen (wobei ich bei der Textierung noch Raum für Verbesserungen gelassen habe face-wink):
@echo off & setlocal
set /a Block1=10

:: Bei Bedarf genaue Erkl„rung der erforderlichen Eingabe

:loop
set OK=
set /p "SubnetIn=Bitte die n„chsten beiden Bl”cke (durch Punkt getrennt) eingeben: %Block1%."  
if "%SubnetIn%"=="" goto :Cancel  
for /f "tokens=1,2 delims=." %%a in ("%SubnetIn%") do call :CheckInput "%%a" "%%b"  

if not defined OK echo Eingabe fehlerhaft - bitte neu eingeben! & echo. & goto :loop

set Subnet=%Block1%.%Block2%.%Block3%
echo.
echo.
echo Eingegebenes Subnet: %Subnet%

:: Was sonst noch
::   so anliegt ...

goto :eof


:CheckInput
if "%~2"=="" goto :eof  

set /a Block2=%~1 2>nul
if %Block2% lss 1 goto :eof
if %Block2% gtr 255 goto :eof

set /a Block3=%~2 2>nul
if %Block3% lss 1 goto :eof
if %Block3% gtr 255 goto :eof

:: erst hier ist alles OK
set OK=True
goto :eof


:Cancel
cls
echo Na dann eben nicht ...
goto :eof
Bei nur zwei einzugebenden Werten lohnt es sich auch nicht wirklich, das Überprüfen in einer Schleife vorzunehmen ...

Grüße
bastla
Member: Pille69
Pille69 Jan 13, 2008 at 21:13:01 (UTC)
Goto Top
brilliant

thx
nun ist mein kiler script fertig
ich bin soo schdolzz aur mir

greetings
juergen

kann der thread als erledigt markiert werden ?
Member: Biber
Biber Jan 13, 2008 at 21:47:51 (UTC)
Goto Top
Moin Pille69,

wie der/die Fragende den Beitrag auf gelöst/erledigt setzen kann, steht in unseren FAQ/Häufigen Fragen.
Heute setze ich mal den Haken für Dich.

Grüße
Biber