es posible hacer lo siguiente con batch

Iniciado por junior spanish, 17 Noviembre 2009, 02:05 AM

0 Miembros y 1 Visitante están viendo este tema.

junior spanish

Hola a todos estoy trabajando en un batch que cambia ip. me gustaria saber si hay alguna forma de poner el login y el comando reboot con la ventana escondida utilizo el nircmd  sendkey aqui dejo el codigo funciona pero por questiones de estica me gustaria ocultar las ventana


@echo off
title reiniciar router
::obviamente necesita telnet y nircmd en la carpeta de windows %windir%
if exist %HOMEDRIVE%\router.ini goto ya
echo           no existe %HOMEDRIVE%\router.ini
echo         ponga los datos siguintes para crearlo
echo ............................................................
set /p n=nombre--^>
set /p m=ccontrase¤a--^>
cls
echo ......................................................
echo   si no sabes el comando de reinicio de tu router
echo presione enter para por o comando por defecto (reboot)
echo ......................................................
set com=reboot
set /p com=comando--^>
echo ......................................................
echo                        nota
echo       si quieres volver a editar los datos
echo tienes que eliminar %HOMEDRIVE%\router.ini o editarlo
echo ......................................................

echo [creado por junior]>%HOMEDRIVE%\router.ini
echo nombre-------^>%n%>>%HOMEDRIVE%\router.ini
echo contrasenia--^>%m%>>%HOMEDRIVE%\router.ini
echo comando------^>%com%>>%HOMEDRIVE%\router.ini
pause

:ya
nircmd win hide ititle "reiniciar router"
::lee el archivo ini y pone en variables
for /f "tokens=1-2 delims=-> skip=1" %%a in (%HOMEDRIVE%\router.ini) do set %%a=%%b

:: le es la variable final con los caracteres separados que vamos a utilizar en el for etiqueta conti
set le=nome
:: es el contenido de la variable a separar
set o=%nombre%
:: aqui es para que vuelva de abajo a la siguiente etiqueta
set go=p
::se dirige a la parte inferior del codigo para separar la variable
goto byjunior

:p
set le=password
set o=%contrasenia%
set go=com
goto byjunior

:com
set le=comando
set o=%comando%
set go=conti
goto byjunior

:conti
START telnet 192.168.1.1
nircmd wait 500
for %%x in (%nome% enter %password% enter %comando% ENTER ) do (
nircmd wait 100
nircmd win activate ititle "TELNET 192.168.1.1"
nircmd sendkey %%x press
)
nircmd wait 2200
taskkill /f /im telnet.exe
exit

:byjunior
::separa las letras por espacios
setlocal enabledelayedexpansion
for %%x in (a b c d e f g h i j k l m n o p q r s t u v w x y z 1 2 3 4 5 6 7 8 9) do (
echo !o:%%x=%%x !>junior.ini
<"junior.ini" set /p "o="
)
echo %O:  = 0x20 %>junior.ini
<"junior.ini" set /p "o="
del /f /q junior.ini
set %le%=%o%
goto %go%

junior spanish

#1
si hay alguna forma de mejorarlo digame

leogtz

¿Quieres esconder la ventana?

No se te entiende bien, utiliza comas.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

junior spanish

el caso es que me gustaria ocultar "telnet 192.168.1.1" pero lo que ocurre cuando la oculto es que nircmd escribe en otra parte, inves de "telnet 192.168.1.1". pienso que si hubiese otro modo de loguarse en telnet y poner el comando como por ejemplo el ftp -s:archivo.txt ip que recoje los datos del archivo y se loguea automaticamente o si nircmd tuviera la posibilidad de enviar los datos a la segunda ventana activa.