• Jueves 22 de Octubre de 2020, 16:46

Autor Tema:  Variables De Entorno  (Leído 8442 veces)

antony_soluciones

  • Miembro MUY activo
  • ***
  • Mensajes: 222
    • Ver Perfil
Variables De Entorno
« en: Martes 16 de Agosto de 2005, 18:22 »
0
Hola a todos....

Mi pregunta es la siguiente, como hacer en un .bat que una variable tome la ruta donde este fue ejecutado... lo que he hecho es lo siguiente pero no me sirve por que nesecito la ruta con los nombres de directorios y todo, ya les muestro

set BAT_HOME=.\

eso es lo que he hecho pero cuando quiero ver el valor de la variable hago lo siguiente:

echo off
echo %BAT_HOME%
.\

lo que esta en azul es lo que sale, lo que yo quisiera que saliese es lo siguiente:

por ejemplo si estoy en la ruta c:\directorio1\dir2\dir2\ y en esta ruta se encuetra el .bat que inicia la variable de entorno BAT_HOME cuando yo haga el:

echo off
echo %BAT_HOME%

aparesca como respuesta la ruta c:\directorio1\dir2\dir2\ y no .\....

Espero haber sido claro, si algo no se entiende por favor posteenlo y yo intentare explicar mejor mi inquietud...

Cordialmente,

Antony Hernan Delgado Solano
[size=109]Antony Hernan Delgado Solano. @antonyDelSol en twitter[/size]

Hao

  • Moderador
  • ******
  • Mensajes: 376
  • Nacionalidad: gt
    • Ver Perfil
Re: Variables De Entorno
« Respuesta #1 en: Martes 16 de Agosto de 2005, 21:04 »
0
:think:
No c si hao entendio bien... pero = creo que es con el comando "path" solo asi... este te muestra la ruta o direccion del archivo....

Y si no te sirve hao se disculpa y vera la forma de ayudarte...

Atte

HAO :lightsabre:


[/size]

antony_soluciones

  • Miembro MUY activo
  • ***
  • Mensajes: 222
    • Ver Perfil
Re: Variables De Entorno
« Respuesta #2 en: Miércoles 17 de Agosto de 2005, 01:35 »
0
La verdad es que no me sirve de mucho usar el comando path por que este es una variable de entorno del sistema usado para colocar en el entorno del sistema operativo las rutas de aquellos ejecutables que deseemos usar en cualquier momento sin tener que ejecutarlos desde la ruta en donde se encuentra... por ejemplo en el directorio bin del jdk de java se encuentran todos los .exe o .bin que sirven para compilar, ejecutar o hacer otro monton de cosas y cada uno de estos ejecutables deben estar disponibles en cualquier ruta...

De todas maneras muchas gracias... y si encuentra como colaborarme le agradeceria el doble....
[size=109]Antony Hernan Delgado Solano. @antonyDelSol en twitter[/size]

Zirrosis

  • Miembro activo
  • **
  • Mensajes: 97
    • Ver Perfil
Re: Variables De Entorno
« Respuesta #3 en: Viernes 18 de Agosto de 2006, 22:09 »
0
Prueba esto:

Código: Text
  1. echo %0
  2.  

Salu2

antony_soluciones

  • Miembro MUY activo
  • ***
  • Mensajes: 222
    • Ver Perfil
Re: Variables De Entorno
« Respuesta #4 en: Viernes 18 de Agosto de 2006, 22:28 »
0
:huh:  :o mmmmmmm.....


Eso no sirve de mucho amigo, no es una respuesta que coloques algo que no has probado.... echo %0   jejejeje.... espero que alla sido una broma :D  :D
[size=109]Antony Hernan Delgado Solano. @antonyDelSol en twitter[/size]

nausea

  • Miembro activo
  • **
  • Mensajes: 68
    • Ver Perfil
Re: Variables De Entorno
« Respuesta #5 en: Miércoles 23 de Agosto de 2006, 13:11 »
0
No hace falta que te crees ninguna variable, ya la tienes. Copia y ejecuta esto

Código: Text
  1. echo %CD%
  2.  

Si necesitas esa variable para algo haz

Código: Text
  1. set miVariable = %CD%
  2.  

Saludos
n.

Zirrosis

  • Miembro activo
  • **
  • Mensajes: 97
    • Ver Perfil
Re: Variables De Entorno
« Respuesta #6 en: Sábado 26 de Agosto de 2006, 12:35 »
0
el %0 te da la ruta desde donde se ejekuta el .bat....si estas en C:\archivo.bat...%0 pasara a valer C:\archivo.bat....

nausea

  • Miembro activo
  • **
  • Mensajes: 68
    • Ver Perfil
Re: Variables De Entorno
« Respuesta #7 en: Lunes 28 de Agosto de 2006, 08:07 »
0
Pues eso no pasa en mi sistema,
Código: Text
  1. echo %0
  2.  
da como resultado el nombre del fichero bat que se ejecuta

Zirrosis

  • Miembro activo
  • **
  • Mensajes: 97
    • Ver Perfil
Re: Variables De Entorno
« Respuesta #8 en: Martes 29 de Agosto de 2006, 00:33 »
0
Ke SO tienes??? yo, en un XP, pongo esto en un archivo .bat:

Código: Text
  1. @echo off
  2. echo %0
  3. pause > nul
  4. end
  5.  

Guardo este .bat en la ruta C:\ruta\archivo.bat, l oejecuto y me muestra esto:

Citar
C:\ruta\archivo.bat

A ti no??? a ti solo te sale archivo.bat???

nausea

  • Miembro activo
  • **
  • Mensajes: 68
    • Ver Perfil
Re: Variables De Entorno
« Respuesta #9 en: Martes 29 de Agosto de 2006, 07:27 »
0
copiado y pegado
Código: Text
  1. @echo off
  2. echo %0
  3. pause > nul
  4. end
  5.  
y lo que me da es ...

Código: Text
  1. archivo.bat
  2.  

sin el path.

Tengo un Microsoft Windows XP [Versión 5.1.2600]

por cierto. el comando
Código: Text
  1. end
  2.  
da error. Si pido un help en la línea de comandos, END no existe

Zirrosis

  • Miembro activo
  • **
  • Mensajes: 97
    • Ver Perfil
Re: Variables De Entorno
« Respuesta #10 en: Martes 29 de Agosto de 2006, 14:50 »
0
Tienes razon, no existe el End, me lie kon los lenguajes, aunke yo lo uso en los .bat's, como da error, finaliza el programa.

Ke version del CMD tienes???puesto ke a mi me da el path.

Salu2

nausea

  • Miembro activo
  • **
  • Mensajes: 68
    • Ver Perfil
Re: Variables De Entorno
« Respuesta #11 en: Miércoles 30 de Agosto de 2006, 07:45 »
0
La versión de mi sistema operativo, como he mencionado en mi post anterior es
Código: Text
  1. Microsoft Windows XP [Versión 5.1.2600]
  2.  
.

De todas formas, en esta página de Microsoft ya advierten de que el parámetro %0 (Que, por cierto, no es una variable porque las variables tienen la forma %v%) no se comporta de la misma forma en todos los sistemas operativos.

Por esos creo que el uso de %CD% (que si es una variable) es más seguro.

Saludos
n.

Zirrosis

  • Miembro activo
  • **
  • Mensajes: 97
    • Ver Perfil
Re: Variables De Entorno
« Respuesta #12 en: Jueves 31 de Agosto de 2006, 16:29 »
0
Ok....eso de ke %0 no es una varaible lo pongo en duda...ya ke una varaible es una "etiketa" por asi decirlo ke varia su contenido. Justo al contrario ke una Constante.... ;)  ;)  (no ahce falta expliakr ke es todo esto). Bien, pues, ya ke al poner %0 da la ruta, y como la ruta es varaibles, pues yo lo konsidero komo una variable.... ;)  ;)

Aunke eso si, siempre y kuando %0 se ejecute desde un .bat, desde la Shell %00 vale %0, no vale el nombre de la ruta.... ;)  ;)

nausea

  • Miembro activo
  • **
  • Mensajes: 68
    • Ver Perfil
Re: Variables De Entorno
« Respuesta #13 en: Viernes 1 de Septiembre de 2006, 07:55 »
0
Pero que %0 no sea una varible no quiere decir que sea una constante. Porque %0 es un parámetro. ¿más explicaciones?

Pues más. Cuando se ejecuta un .bat puede hacerse con parámetros o si ellos. Por ejemplo:

Código: Text
  1. unaPrueba.bat param1 param2 param3
  2.  

Los parámetros se recogen dentro de un .bat mediante las "etiketas" %1, %2, etc. Ejemplo

Código: Text
  1. copy %1 %2
  2.  

En este caso param1 puede ser un nombre de fichero y param2 un directorio. Pero también puede hacerse asignación. Otro ejemplo

Código: Text
  1. set %miVariable% = %3
  2.  

oooohhh. ¿Que es esto? Pues si quieres una variable, tendrás que definir un nombre entre 2 signos %, no sólo con uno porque si solamente tiene un signo % es una referencia a un parámetro. Si %1 fuera una variable, el siguiente ejemplo funcionaría
Código: Text
  1. set %1 = 34
  2.  
pero, de hecho, da error.

¿Y que pasa con %0? Pues que el parámetro %0 siempre se pasa, aunque no se escriba ningún parámetro detras de la llamada al .bat. ¿Y cuanto vale ese parámetro? El nombre del .bat con o sin path según sea como hayas hecho la llamada al .bat. Es decir, si al . bat se le llama
Código: Text
  1. miBat
  2.  
la respuesta será
Código: Text
  1. miBat
  2.  
Si la llamada la haces
Código: Text
  1. d:\undirectorio\otrodirectorio\masdirectorios\miBat.bat
  2.  
el valor de %0 es
Código: Text
  1. d:\undirectorio\otrodirectorio\masdirectorios\miBat.bat
  2.  

Por esa misma razón, tu pretendida solución no le sirve a antony_soluciones, porque el pide el camino, sin el nombre del .bat y tu solución, en el mejor de los casos le da todo el nombre completo, el del .bat incluido.

La variable,  :huh: , %CD% es la solución que pide antony_soluciones. Que es una variable del sistema que cambia cuando cambias de directorio (Por eso no es una constante) y tampoco es un parámetro, porque no se pasa al .bat

¿Y sabes como se que esto es así? Porque me he abierto una ventana de línea de comandos y he hecho unas pruebas y me he leido algunos manuales. Por tus respuestas se ve que no lo has hecho.

saludos
n.

Zirrosis

  • Miembro activo
  • **
  • Mensajes: 97
    • Ver Perfil
Re: Variables De Entorno
« Respuesta #14 en: Sábado 2 de Septiembre de 2006, 18:31 »
0
Lo de los aprametros si lo sabia.... ;)  ;)  ;)  lo ke no me expliko es porke a ti solo te sale el nombre del .bat y a mi me sale la ruta+nombre.

De manuales me e leido muchisimos.... ;)  ;)

nausea

  • Miembro activo
  • **
  • Mensajes: 68
    • Ver Perfil
Re: Variables De Entorno
« Respuesta #15 en: Lunes 4 de Septiembre de 2006, 07:52 »
0
¿como ejecutas el .bat?

Una posible explicación la doy en mi post anterior cuando pongo dos ejemplos de %0 ¿la has probado? Seguro que no.

Y que quieres que te diga. A mi me parece que lo de los parámetros no lo sabías

Zirrosis

  • Miembro activo
  • **
  • Mensajes: 97
    • Ver Perfil
Re: Variables De Entorno
« Respuesta #16 en: Lunes 4 de Septiembre de 2006, 10:53 »
0
xD xD xD xD lo de los parametros lo sabia hace tiempo.

Haber si alguien nos puede decir ke le sale al poner echo %0 en un .bat

nausea

  • Miembro activo
  • **
  • Mensajes: 68
    • Ver Perfil
Re: Variables De Entorno
« Respuesta #17 en: Miércoles 6 de Septiembre de 2006, 08:06 »
0
Mira, tu no lees y ni te enteras.

El 26 de agosto tu, Zirrosis, escribes
Citar
el %0 te da la ruta desde donde se ejekuta el .bat....si estas en C:\archivo.bat...%0 pasara a valer C:\archivo.bat....

Confundes el path con el nombre completo del fichero. Ni tienes ni idea y ni has leido cual era la pregunta de anthony_soluciones. El quiere el path, no el nombre completo. No hace falta que nadie diga que le da
Código: Text
  1. echo %0
  2.  
Si hubieras leido mi "post" del 1 de septiembre lo sabrias: te da la llamada a tu .bat.

Si has hecho la llamada
Código: Text
  1. c:\undir\archivo.bat
  2.  
el resultado será
Código: Text
  1. c:\undir\archivo.bat
  2.  
pero no
Código: Text
  1. c:\undir\
  2.  
Si cambias de directorio y hace
Código: Text
  1. archivo.bat
  2.  
%0 te dará
Código: Text
  1. archivo.bat
  2.  
Si haces
Código: Text
  1. .\archivo.bat
  2.  
te dará
Código: Text
  1. .\archivo.bat
  2.  
.

Y antes de decir nada, lo pruebas :blink:

Zirrosis

  • Miembro activo
  • **
  • Mensajes: 97
    • Ver Perfil
Re: Variables De Entorno
« Respuesta #18 en: Miércoles 6 de Septiembre de 2006, 14:30 »
0
pones el %0 en un archivo de texto y kno el for buscas la ruta y lo pones dentro de una variable.....asi se saka el path a parte de kon la varaible de entorno.....asi ke no digas ke kon %0 no se puede..... :angry:  :angry:

antony_soluciones

  • Miembro MUY activo
  • ***
  • Mensajes: 222
    • Ver Perfil
Re: Variables De Entorno
« Respuesta #19 en: Jueves 7 de Septiembre de 2006, 02:07 »
0
Hola amigos...

Jejejejeje.... :D  :D  no creí que esto habría salido para tanto; amigos muchas gracias, de verdad muchas gracias, ustedes son ese tipo de gente que a uno le gusta leer, me divertí mucho con sus conjeturas y discuciones, lo cierto es que lo único que nesecitaba era el simple %CD% y ya, ahora si se pueden crear buenos ejecutores con un .bat...

Cuidence y otra vez gracias...

Cordialmente

Antony, un amigo más :hola:
[size=109]Antony Hernan Delgado Solano. @antonyDelSol en twitter[/size]

su -

  • Moderador
  • ******
  • Mensajes: 2349
    • Ver Perfil
Re: Variables De Entorno
« Respuesta #20 en: Jueves 7 de Septiembre de 2006, 02:20 »
0
Cita de: "Zirrosis"
xD xD xD xD lo de los parametros lo sabia hace tiempo.

Haber si alguien nos puede decir ke le sale al poner echo %0 en un .bat
bash  :P
Código: Text
  1. bash-2.05b$ echo"Salida: $0"
  2.  
Salida: bash
Código: Text
  1. bash-2.0.5b$ echo "echo $0" > test.sh && bash test.sh
  2.  
bash
Ni modo je je.
Code, code...
Código: Text
  1. #!/usr/bin/env sh
  2. echo $0;
  3.  
  4.  
bash
 :argh:
Código: Text
  1. bash-2.05b$ perl -e 'print "$0\n";'
  2.  
-e
Código: Text
  1. #!/usr/bin/env perl
  2. print "$0\n";
  3.  
test.pl  :D
*******PELIGRO LEE ESTO!!*******

There is no place like 127.0.0.1

Conecto luego existo, no conecto luego insisto.

nausea

  • Miembro activo
  • **
  • Mensajes: 68
    • Ver Perfil
Re: Variables De Entorno
« Respuesta #21 en: Jueves 7 de Septiembre de 2006, 07:38 »
0
Cita de: "Zirrosis"
pones el %0 en un archivo de texto y kno el for buscas la ruta y lo pones dentro de una variable.....asi se saka el path a parte de kon la varaible de entorno.....asi ke no digas ke kon %0 no se puede..... :angry:  :angry:
Si claro, eso es mucho mejor que %CD%  :blink:

Zirrosis

  • Miembro activo
  • **
  • Mensajes: 97
    • Ver Perfil
Re: Variables De Entorno
« Respuesta #22 en: Jueves 7 de Septiembre de 2006, 14:45 »
0
xD xD nops, pero es otro modo.... ;)  ;)

Agur!!