Puedes ver todas las lecciones batch desde este enlace: Lecciones batch.
En batch, tal y como vimos con el comando set, podemos crear nuestras propias variables y trabajar con ellas.
Además de todas las variables que nosotros podamos crear, existen otro tipo de variables, llamadas “variables de entorno” en las que se almacenan un valor, generalmente una cadena de texto (string) al igual que las variables normales.
Pero hay una gran diferencia, consiste en que las variables de entrono nunca se borran, al contrario que las variables normales que son borradas cuando se ha salido de la aplicación o cuando cerramos la terminal (si creamos variables desde la terminal) por lo que conocer estas variables o algunas de ellas es muy importante ya que nos ahorremos líneas de código.
- ¿Cuántas variables de entorno hay?
Es muy relativo, ya que depende de cada sistema Windows, además hay programas que aportan sus propias variables de entorno al ser instalas en nuestro PC, un ejemplo es al instalar java, este crea “%QTJAVA%” entre otras.
También podemos crear nuestras propias variables de entorno, por lo que el número de estas puede ser infinito.
- ¿Cómo visualizo las variables de entorno?
La forma más fácil y directa es usando la terminal.
Una vez la tenemos abierta usaremos el comando set, pero esta vez no le ponemos nada. (c:\>set) entonces saldrá un listado con todas las variables locales y las creadas por nosotros (si las hemos creado en esa sesión).
Para visualizar el valor de una variable de entorno es igual que con las variables normales, ponemos en la terminal “echo” seguido del nombre de la variable encerrado entre % (“echo %variable%“).
* El listado puede que sea un poco borroso o difícil de leer ya que están todas muy juntitas, es por eso que al final de esta entrada pondré el código de una aplicación muy simple que muestra todas las variables de entorno que hay por defecto en Windows 2003 Server.
- Algunas variables de entorno
En esta parte voy a explicar que hacen algunas de las más importantes variables de entorno y serán estas las que más se utilizan.
- COMPUTERNAME = Muestra el nombre de nuestro ordenador.
- HOMEDRIVE = Muestra nuestra letra de unidad.
- HOMEPATH =Muestra la ruta de la carpeta de usuario en el que estamos logueados (“Documents and setting\usuario” ó “Users\usuario”).
- OS = Muestra el tipo de nuestro sistema.
- ProgramFiles = Muestra la ruta de archivos de programa.
- PROMPT = Muestra el prompt de la terminal (c:\>). Este a su vez es un comando batch que sirve para cambiar el promtp y que salgan otras cosas, como la fecha, hora,….
- SystemDrive = Muestra nuestra letra de unidad (c: , e: , etc.) Es igual que la variable HOMEDRIVE
- SystemRoot = Muestra la ruta de la carpeta Windows.
- TEMP = Muestra la ruta de la carpeta de temporales.
- USERNAME = Muestra el nombre de usuario con el que estamos logueados.
- WINDIR = Muestra la ruta de la carpeta Windows.
Otras variables de entorno que no se reflejan con el comando set.
Además de ese listado hay otras variables que se pueden usar y que nos pueden ayudar a salir de un apuro. Veamos algunas de ellas.
- CD = Muestra el directorio actual (Es igual al comando PWD de Linux)
- DATE = Muestra la fecha actual del sistema.
- TIME = Muestra la hora actual del sistema.
- RANDOM = Muestra un numero aleatorio entre 0 y 32767.
Pequeña aplicación que muestra el valor de las variables de entorno.
Como dije casi al principio de esta entrada, a continuación pondré el código fuente de una pequeña aplicación batch que muestra el nombre de las variables de entorno junto con el valor entre [] que hay por defecto al instalar Windows 2003 Server.
Es prácticamente igual que usar el comando set, pero la lista es algo más agradable a la vista.
He aquí el código.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | @echo off cd \ & cls title Variables locales echo ALLUSERSPROFILE: [%ALLUSERSPROFILE%] & echo. echo APPDATA: [%APPDATA%] & echo. echo ClusterLog: [%ClusterLog%] & echo. echo CommonProgramFiles: [%CommonProgramFiles%] & echo. echo COMPUTERNAME: [%COMPUTERNAME%] & echo. echo ComSpec: [%ComSpec%] & echo. echo FP_NO_HOST_CHECK: [%FP_NO_HOST_CHECK%] & echo. echo HOMEDRIVE: [%HOMEDRIVE%] & echo. echo HOMEPATH: [%HOMEPATH%] & echo. echo LOGONSERVER: [%LOGONSERVER%] & echo. echo NUMBER_OF_PROCESSORS: [%NUMBER_OF_PROCESSORS%] & echo. echo OS: [%OS%] & echo. echo Path: [%Path%] & echo. echo PATHEXT: [%PATHEXT%] & echo. echo PROCESSORS_ARCHITECTURE: [%PROCESSOR_ARCHITECTURE%] & echo. echo PROCESSORS_INDENTIFIER: [%PROCESSOR_IDENTIFIER%] & echo. echo PROCESSORS_LEVEL: [%PROCESSOR_LEVEL%] & echo. echo PROCESSORS_REVISION: [%PROCESSOR_REVISION%] & echo. echo ProgramFiles: [%ProgramFiles%] & echo. echo PROMPT: [%PROMPT%] & echo. echo SESSIONNAME: [%SESSIONNAME%] & echo. echo SystemDrive: [%SystemDrive%] & echo. echo SystemRoot: [%SystemRoot%] & echo. echo TEMP: [%TEMP%] & echo. echo TMP: [%TMP%] & echo. echo USERDNSDOMAIN: [%USERDNSDOMAIN%] & echo. echo USERNAME: [%USERNAME%] & echo. echo USERPROFILE: [%USERPROFILE%] & echo. echo windir: [%windir%] & echo. pause > nul |
Una imagen del resultado.
Como crear nuestras propias variables de entorno.
Windows por sus parte nos pone unas variables de entorno por defecto para usarlas, al igual que algunos programas que instalamos, pero y si nosotros queremos crear más para no tener que estar siempre creándolas en nuestras aplicaciones. ¿Cómo hacemos eso?
Una manera sencilla es yéndonos a las propiedades de Mi PC, Damos en la pestaña de Opciones Avanzadas y en el botón de “variables de entorno” situado abajo.
Para los usuarios de Windows vista y 7:
Propiedades de “Equipo”, damos al botón de la izquierda “Configuración avanzada del sistema”, opciones avanzadas, variables de entorno.
Nos saldra una ventana con un listado de variables de entorno. Para crear una nueva damos en “nueva” (el de abajo).
Podemos el nombre que le daremos a la variable y el valor de la misma.
* Poner los nombres de variables en una sola palabra, en caso de ser varias, separar las palabras usando guion bajo “_”.
Aceptamos todo, y vemos ahora en la terminal que podemos usarla igual que cualqueir otra variable.
Con esto podremos usar estas variables siempre que queramos, en cualquier script y con cualqueir usuario del sistema.
Nota: Si usamos en un script variables que hemos creado y queremos que lo use otra persona desde otro ordenador, es nesesario que en ese PC esten creadas las variables ya que de lo contrario la aplicacion no funcionará.
Entradas Relacinadas:










