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

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Batch script --> Informacion SETLOCAL & ENDLOCAL
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Batch script --> Informacion SETLOCAL & ENDLOCAL  (Leído 2,596 veces)
juanjo86

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Batch script --> Informacion SETLOCAL & ENDLOCAL
« en: 10 Octubre 2013, 11:37 am »

Hola buenos días,

Os informo de la situación actual:
Tengo dos batch scripts (uno llama al otro): vamos a llamar A al script raíz y B al script que es llamado por el script raíz (A).
Ambos scripts tienen en su código el SETLOCAL al principio del script y el ENDLOCAL al final del mismo. El problema esta en que el script A debe recibir una variable que se genera en el script B pero al tener el SETLOCAL este script (B) la toma como variable local y por tanto no traslada su contenido al primer script (A).

Mis preguntas son las siguientes:
¿Puedo eliminar el SETLOCAL y el ENDLOCAL del script B sin miedo a que esto pueda generar algún nuevo tipo de problema (mas allá del problema obvio de que A y B tengan los mismos nombres de variables)?  Si elimino el SETLOCAL y ENDLOCAL del script B, entiendo que el SETLOCAL que he puesto en el script A también se mantendrá cuando llame al script B, no?

Y por otro lado, si quisiese tener el SETLOCAL y ENDLOCAL en ambos scripts, ¿hay alguna manera de conseguir que una variable generada en B la pueda leer en A?

Muchas gracias de antemano y un saludo!  :)


« Última modificación: 10 Octubre 2013, 12:18 pm por juanjo86 » En línea

juanjo86

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Batch script --> Informacion SETLOCAL & ENDLOCAL
« Respuesta #1 en: 11 Octubre 2013, 10:00 am »

¿Ninguna idea?

Gracias!


En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.817



Ver Perfil
Re: Batch script --> Informacion SETLOCAL & ENDLOCAL
« Respuesta #2 en: 11 Octubre 2013, 17:58 pm »

¿Ninguna idea?

Si quieres que el script A reciba una variable del script B entonces tienes que hacer global dicha variable.

Una vez hayas terminado de manejar tus variables locales en el script B, al desactivar ENDLOCAL, podrías setearlas para hacerlas globales, de esta manera:

script A
Código
  1. @Echo OFF & SETLOCAL
  2. Call ScriptB.bat
  3. Echo %var% & REM Result: 123
  4. Pause&Exit

Script B
Código
  1. @Echo OFF & SETLOCAL
  2. Set "var=123"
  3. Set "var=%var%"
  4. )
  5. Exit /B 0

Saludos
« Última modificación: 11 Octubre 2013, 18:01 pm por EleKtro H@cker » En línea

juanjo86

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Batch script --> Informacion SETLOCAL & ENDLOCAL
« Respuesta #3 en: 14 Octubre 2013, 09:54 am »

Muchas gracias EleKtro H@cker, así lo haré!  ;-)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
programa batch o script
Scripting
meihan 0 1,958 Último mensaje 28 Junio 2008, 07:05 am
por meihan
[BATCH] Información no documentada de expansión ~a « 1 2 »
Scripting
0x0309 12 5,574 Último mensaje 22 Marzo 2009, 07:16 am
por 0x0309
Script BATCH BASICO
Scripting
Fx Hound 1 4,192 Último mensaje 15 Mayo 2010, 18:25 pm
por flony
BATCH [! Setlocal - primera ves los veo :|]
Scripting
Esperpentor 1 4,029 Último mensaje 26 Junio 2010, 23:02 pm
por leogtz
[Batch] Se me cae el script « 1 2 3 »
Scripting
VivaElPirateo 24 11,906 Último mensaje 5 Junio 2012, 06:59 am
por VivaElPirateo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines