Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - junior spanish

#1
Scripting / es posible hacer lo siguiente con batch
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%