a) El telnet en windows no es igual que en linux... Para usarlo en un batch no es demasiado operativo... Unido a que el cmd no es un bash, resulta un problema usarlo. Además, NO quieres hacer nada mas que verificar si el puerto está a la escucha y te puedes conectar a él, ¿no?
Prueba a utilizar otro programa para testear si un puerto esta abierto... Dado que es tcp tu conexión, puedes probar tcping:
http://www.elifulkerson.com/projects/tcping.php
(no lo he probado en windows 7 64bits... Pruebalo tu si lo necesitas. En windos 7 32 bits y en XP funciona).
Para no tener que parsear la salida de tcping en un bat, puedes crear un script sencillo (un .bat):
@echo off
tcping -n 1 172.XX.XXX.XXX 1523 > NUL
IF %ERRORLEVEL% == 0 (echo 0) else (echo 1)
@echo on
Ese "bat" da como salida 0 si el puerto 1523 de la IP 172.XX.XXX.XXX esta abierto (hay conexión)... Y 1 si está cerrado (o pon tú la salida que quieras en los echo del final).
b) Dos cosas: Tu comando a ejecutar se llama "telnet.bat"... No check_telnet (creo). La sintaxis es:
check_nrpe -H <nsclient++ server ip> -c <command>
Y, de nuevo, chequea los permisos por si acaso... Asegurate de que tienes permisos para ejecutar (via socket que has abierto con un usuario determinado) el comando adecuado.
Resumiendo:
Prueba a usar un bat como el de arriba con tcping para obtener una salida válida en función de que el puerto remoto esté o no abierto.
Asegúrate de que usas la sintaxis correcta y llamas al comando con el nombre que le pusistes... Y de que ese comando puede ser ejecutado por el usuario que abrió el NSClient++