Discussion forum for all Windows batch related topics.
Moderator: DosItHelp
-
Adrianvdh
- Posts: 177
- Joined: 16 May 2013 13:00
#1
Post
by Adrianvdh » 05 Aug 2013 08:28
Hey everyone...
I am struggling to make a function with code that was post on the forum a few months ago..
I goes as so...
Code: Select all
:checkPingLayersReg
reg query "%RegKey%" /v "PING_PLAYERS" >nul 2>nul
if "%errorlevel%"=="0" for /f "tokens=2*" %%i in ('reg query "%RegKey%" /v "PING_PLAYERS"') do set "pinglayersnumber=%%j"
call :PinglayerMaxMin
set /a "numeric=pinglayersnumber" 2>nul && (
if "!numeric!"=="!pinglayersnumber!" (
if !numeric! geq %pinglayersmin% (
if !numeric! leq %pinglayersmax% (
exit /b
) else (
echo input wasn't less than 11
)
) else (
echo input wasn't greater than 0
)
) else (
echo input wasn't numeric
)
) || (
echo failed to assign any numeric value
)
exit /b
call :Defaultpinglayer
>nul reg add "%RegKey%" /v "PING_PLAYERS" /t REG_SZ /d "%pinglayersnumber%" /f
exit /b
:Defaultpinglayer
set pinglayersnumber=2
exit /b
:PinglayerMaxMin
set pinglayersmax=10
set pinglayersmin=1
exit /b
it gives me an unexpected error, saying 1 was unexpected.
It has a lot work.
Thanks for your time

-
foxidrive
- Expert
- Posts: 6031
- Joined: 10 Feb 2012 02:20
#2
Post
by foxidrive » 05 Aug 2013 08:53
Show us where the issue is. Try this.
Code: Select all
@echo off
setlocal enabledelayedexpansion
set "pinglayersnumber=2"
call :go
set "pinglayersnumber=0"
call :go
set "pinglayersnumber=-1"
call :go
set "pinglayersnumber=11"
call :go
set "pinglayersnumber=aa"
call :go
set "pinglayersnumber=12bb34"
call :go
set "pinglayersnumber="
call :go
echo done
pause
goto :EOF
:go
call :PinglayerMaxMin
set /a "numeric=pinglayersnumber" 2>nul && (
if "!numeric!"=="!pinglayersnumber!" (
if !numeric! geq %pinglayersmin% (
if !numeric! leq %pinglayersmax% (
echo numeric is !numeric!&pause
exit /b
) else (
echo input wasn't less than 11
)
) else (
echo input wasn't greater than 0
)
) else (
echo input wasn't numeric
)
) || (
echo failed to assign any numeric value
)
pause
exit /b
call :Defaultpinglayer
>nul reg add "%RegKey%" /v "PING_PLAYERS" /t REG_SZ /d "%pinglayersnumber%" /f
exit /b
:Defaultpinglayer
set pinglayersnumber=2
exit /b
:PinglayerMaxMin
set pinglayersmax=10
set pinglayersmin=1
exit /b