@echo off
echo %* > log.txt

@echo off
setlocal enableDelayedExpansion

set "options=/ipadress:"127.0.0.1" /port:"3306" "

for %%O in (%options%) do for /f "tokens=1,* delims=:" %%A in ("%%O") do set "%%A=%%~B"
:loop
if not "%~3"=="" (
  set "test=!options:*%~3:=! "
  if "!test!"=="!options! " (
      echo Error: Invalid option %~3
  ) else if "!test:~0,1!"==" " (
      set "%~3=1"
  ) else (
      setlocal disableDelayedExpansion
      set "val=%~4"
      call :escapeVal
      setlocal enableDelayedExpansion
      for /f delims^=^ eol^= %%A in ("!val!") do endlocal&endlocal&set "%~3=%%A" !
      shift /3
  )
  shift /3
  goto :loop
)
goto :endArgs
:escapeVal
set "val=%val:^=^^%"
set "val=%val:!=^!%"
exit /b
:endArgs

set - >> log.txt

:: To get the value of a single parameter, just remember to include the `-`
echo The value of /ipaddress is: !/ipadress!  >>log.txt
echo The value of /port is: !/port!  >>log.txt

:Top

c:\portqryv2\portqry -n !/ipadress! -e !/port! -p tcp >>log.txt
if errorlevel = 2 goto filtered
if errorlevel = 1 goto failed
if errorlevel = 0 goto success
goto end

:filtered
Echo Port is listening or filtered >> log.txt
Exit 1
goto end

:failed
Echo Port is not listening >> log.txt
Exit 1
Goto end

:success
Echo Port is listening >> log.txt
Exit 0
goto end

:end



