1. Encierra la variable cuando utilices símbolos reservados por el lenguaje como ":" .
Set "IP=192.168.76.55:8093"
2. Utiliza el comando FIND en lugar de FINDSTR, pues no lo necesitas en absoluto ya que conoces el string a buscar, y aparte, el punto "." representa cualquier posible caracter en RegEx, con lo cual estás buscando un string más largo de lo que piensas que no corresponde a una ip.
FOR ...
in ('"type temp.txt
^| find "
%IP%"'
) do (...
)
3. El símblo "|" o
pipe debes escaparlo en la expresión de FOR con el operador de escape
^. En el punto nº2 te mostré como hacerlo.
4. El símbolo de variable de For tienes que duplicarlo al usarlo en un script.
5. El comando EXISTS es exclusivo para archivos y carpetas. Si quieres comparar un valor debes utilizar el comando FIND, FINDSTR o IF EQU/GEQ/GTR/LEQ/LSS, Batch es un lenguaje muy limitado.
Saludos!