Título: es posible hacer lo siguiente con batch
Publicado por: junior spanish en 17 Noviembre 2009, 02:05 am
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%
Título: Re: es posible hacer lo siguiente con batch
Publicado por: junior spanish en 17 Noviembre 2009, 02:10 am
si hay alguna forma de mejorarlo digame
Título: Re: es posible hacer lo siguiente con batch
Publicado por: leogtz en 17 Noviembre 2009, 02:55 am
¿Quieres esconder la ventana?
No se te entiende bien, utiliza comas.
Título: Re: es posible hacer lo siguiente con batch
Publicado por: junior spanish en 17 Noviembre 2009, 17:35 pm
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.
|