elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [batch] Cambiar valor a una variable con IF AYUDA!
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: [batch] Cambiar valor a una variable con IF AYUDA!  (Leído 10,262 veces)
Delva

Desconectado Desconectado

Mensajes: 7



Ver Perfil
[batch] Cambiar valor a una variable con IF AYUDA!
« en: 16 Noviembre 2010, 16:59 pm »

Código:
[code]
Hola muy buenas... soy nuevo en este foro y el caso que me aburría y me puse a hacer un programilla batch con el fin de usar un chat mendiante el mensaje de aviso de cierre de sesión del shutdown, este es el código:


Código
  1. @echo off
  2. cls
  3. color 0a
  4. echo            ~-/\-Mensajero ASIR -/\-~
  5. echo _______________________________________________
  6. echo Escribe IP de destino del mensaje
  7. set /p ip=
  8. echo Escribe Mensaje a enviar
  9. set /p mensaje=
  10.  
  11. shutdown /s /t 400 /m \\%ip%  /c "%mensaje%"


Bien pues mi intención es asignar a cada IP el nombre del compañero de clase, para en vez de tener que introducir constantemente la Ip, simplemente escribir el nombre de dicha persona... mi mente me llevo a pensar en este código:

Código
  1. echo Escribe nombre completo de destino
  2. set /p nombre=
  3. if %nombre=="carlos" (%1=192.168.3.6)
  4. if %nombre=="rober" (%1=192.168.3.5)
  5. if %nombre=="victor" (%1=192.168.3.11)
  6. if %nombre=="cristian" (%1=192.168.3.27)
  7. echo Escribe Mensaje a enviar
  8.  
cosa que no funciona como me esperaba ya que la consola me devuelve:

           ~-/\-Mensajero ASIR -/\-~
______________________________________________

Escribe nombre completo de destino
carlos
No se esperaba =192.168.3.6) en este momento.
... espero que me puedan ayudar gracias!


*Edit: Se me olvidaba comentar que el echo de usar este comando es porque en clase ya usamos windows 7 y no disponemos del servicio "Mensajero" y la verdad ni idea de como activarle en este SO.
 Y para evitar que el programa nos apague el PC, tengo otro .bat con el contenido shutdown -a....
No vallais a pensar que estamos locos..... pero esque esto de dar FOL par ser técnico de ASIR aburre que te cagas... xD

[/code]


« Última modificación: 17 Noviembre 2010, 01:43 am por Leo Gutiérrez. » En línea

xassiz~


Desconectado Desconectado

Mensajes: 457



Ver Perfil WWW
Re: [batch] Cambiar valor a una variable con IF AYUDA!
« Respuesta #1 en: 16 Noviembre 2010, 17:40 pm »

Código
  1. if %nombre%=="carlos" (set ip=192.168.3.6)


En línea

Delva

Desconectado Desconectado

Mensajes: 7



Ver Perfil
Re: [batch] Cambiar valor a una variable con IF AYUDA!
« Respuesta #2 en: 16 Noviembre 2010, 17:56 pm »

Vale, eso por un lado, pero ahora despues de probarlo me envía a mi el mensaje en vez de a otro equipo que tengo en red....
y me huele que voy a tener que cambiar algo de:

Código:
shutdown /s /t 400 /m \\%ip%  /c "%mensaje%"

porque la consola me devuelve el mensaje:

Código:
           ~-/\-Mensajero ASIR -/\-~
_______________________________________________

Escribe nombre de destino
carlos
Escribe Mensaje a enviar
234
mensaje: El nombre de equipo escrito no es válido o no se admite el apagado remo
to en el equipo de destino. Compruebe el nombre e inténtelo de nuevo o póngase e
n contacto con el administrador del sistema.(53)
« Última modificación: 16 Noviembre 2010, 18:15 pm por Delva » En línea

xassiz~


Desconectado Desconectado

Mensajes: 457



Ver Perfil WWW
Re: [batch] Cambiar valor a una variable con IF AYUDA!
« Respuesta #3 en: 16 Noviembre 2010, 18:18 pm »

Date cuenta que tu pusiste que hay que ingresar:
Código:
"carlos"
Y no:
Código:
carlos

Prueba:
Código
  1. @echo off
  2. color 0a
  3. :main
  4. cls
  5. echo            ~-/\-Mensajero ASIR -/\-~
  6. echo _______________________________________________
  7. set "mensaje="
  8. set /p "mensaje=Escribe mensaje: "
  9. if not defined mensaje (goto:main)
  10. set "nombre="
  11. set /p "nombre=Escribe nombre: "
  12. if not defined nombre (goto:main)
  13. if "%nombre%"=="carlos" (call :enviar "192.168.3.6")
  14. if "%nombre%"=="rober" (call :enviar "192.168.3.5")
  15. if "%nombre%"=="victor" (call :enviar "192.168.3.11")
  16. if "%nombre%"=="cristian" (call :enviar "192.168.3.27")
  17. goto:main
  18. :enviar
  19. shutdown /s /t 400 /m \\%~1  /c "%mensaje%"
  20. goto:eof
En línea

Delva

Desconectado Desconectado

Mensajes: 7



Ver Perfil
Re: [batch] Cambiar valor a una variable con IF AYUDA!
« Respuesta #4 en: 16 Noviembre 2010, 18:30 pm »

Wow! Muchas gracias perfecto! la cuestión es que funciona como quería... pero la verdad que no me queda muy claro el uso de "\\%~1" en

Código
  1. shutdown /s /t 400 /m \\%~1 /c "%mensaje%"
« Última modificación: 16 Noviembre 2010, 18:34 pm por Delva » En línea

xassiz~


Desconectado Desconectado

Mensajes: 457



Ver Perfil WWW
Re: [batch] Cambiar valor a una variable con IF AYUDA!
« Respuesta #5 en: 16 Noviembre 2010, 18:41 pm »

Recojo el primer argumento pasado a la "función" enviar con %1, el "~" lo que hace es eliminar las comillas.

Es decir, ese %~1 se va ir sustituyendo por la ip que le pasemos.
En línea

Delva

Desconectado Desconectado

Mensajes: 7



Ver Perfil
Re: [batch] Cambiar valor a una variable con IF AYUDA!
« Respuesta #6 en: 16 Noviembre 2010, 18:46 pm »

Totalmente comprendido... muchas gracias pablo fue de gran ayuda!

 ;-)
En línea

xassiz~


Desconectado Desconectado

Mensajes: 457



Ver Perfil WWW
Re: [batch] Cambiar valor a una variable con IF AYUDA!
« Respuesta #7 en: 16 Noviembre 2010, 18:48 pm »

Totalmente comprendido... muchas gracias pablo fue de gran ayuda!

 ;-)
De nada, para eso estamos ;)
En línea

Delva

Desconectado Desconectado

Mensajes: 7



Ver Perfil
Re: [batch] Cambiar valor a una variable con IF AYUDA!
« Respuesta #8 en: 16 Noviembre 2010, 19:10 pm »

Otra pregunta mas, se puede establecer un delay a la hora de que ejecute una orden?? es decir, se me a ocurrido plantear que a continuación de enviar el shutdown, envíe en aproximadamente 20 segundos un shutdown -a a la misma Ip para cancelar el anterior...
Se podría hacer o ya es una gran paja mental? jaja
En línea

xassiz~


Desconectado Desconectado

Mensajes: 457



Ver Perfil WWW
Re: [batch] Cambiar valor a una variable con IF AYUDA!
« Respuesta #9 en: 16 Noviembre 2010, 19:51 pm »

Nunca probé a usar shutdown remotamente, pero prueba:
Código
  1. @echo off
  2. color 0a
  3. :main
  4. cls
  5. echo            ~-/\-Mensajero ASIR -/\-~
  6. echo _______________________________________________
  7. set "mensaje="
  8. set /p "mensaje=Escribe mensaje: "
  9. if not defined mensaje (goto:main)
  10. set "nombre="
  11. set /p "nombre=Escribe nombre: "
  12. if not defined nombre (goto:main)
  13. if "%nombre%"=="carlos" (call :enviar "192.168.3.6")
  14. if "%nombre%"=="rober" (call :enviar "192.168.3.5")
  15. if "%nombre%"=="victor" (call :enviar "192.168.3.11")
  16. if "%nombre%"=="cristian" (call :enviar "192.168.3.27")
  17. goto:main
  18. :enviar
  19. ping -n 20 127.0.0.1>nul
  20. shutown /a /m \\%~1
  21. shutdown /s /t 400 /m \\%~1  /c "%mensaje%"
  22. goto:eof
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Cambiar el Valor de una Variable a una hora concreta
Java
thechacal23 4 3,693 Último mensaje 3 Enero 2012, 03:47 am
por Proteus1989
Cambiar valor a una variable public con un boton [Solucionado] « 1 2 »
.NET (C#, VB.NET, ASP)
¡Micronet! 12 8,419 Último mensaje 7 Abril 2012, 18:36 pm
por $Edu$
cambiar valor variable ciclo for duda
Scripting
asdexiva 3 2,627 Último mensaje 7 Febrero 2015, 21:50 pm
por engel lex
Cambiar el valor de una variable en un puntero
Programación C/C++
boy-ka 5 8,320 Último mensaje 7 Abril 2015, 10:25 am
por eferion
Cambiar valor de una variable de tipo estructura
Programación C/C++
4dr14n31t0r 3 2,115 Último mensaje 27 Septiembre 2016, 19:52 pm
por 4dr14n31t0r
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines