|

En informática, el término "variable" se refiere a unas unidades de datos que pueden adoptar distintos valores. Es un concepto básico en programación y también se utiliza con distinta frecuencia en algunos sistemas operativos.

Microsoft Windows dispone de un buen número de variables de entorno predefinidas. Aunque su uso no está al alcance de cualquiera, conocerlas puede ser de utilidad en varias tareas:

  • Crear archivos de procesamiento por lotes (BAT) o scripts que funcionen en distintos equipos
  • Acceder rápidamente a carpetas predefinidas (Configuración Local, archivos temporales...)

Veamos sin más dilación algunas de las variables de entorno de Windows XP y cómo cambiarlas.

  • %ALLUSERSPROFILE% - Ruta de la carpeta con la configuración para todos los usuarios
    • C:\Documents and Settings\All Users
  • %APPDATA% - Ruta de la carpeta con datos de programa
    • C:\Documents and Settings\{usuario}\Datos de Programa
  • %COMPUTERNAME% - Nombre del equipo
    • Computer
  • %COMSPEC% - Ruta al intérprete de comandos
    • C:\Windows\System32\cmd.exe
  • %HOMEDRIVE% - Unidad en la que se encuentra los datos de usuario
    • C:
  • %HOMEPATH% - Ruta a la carpeta del usuario actual
    • \Documents and Settings\{usuario}
  • %USERPROFILE% - Ruta a la carpeta del usuario actual. Incluye la unidad
    • C:\Documents and Settings\{usuario}
  • %PATH% - Rutas en la que se buscan ejecutables
    • C:\Windows\System32\;C:\Windows\
  • %PATHEXT% - Extensiones de archivo ejecutables
    • .COM; .EXE; .BAT; .CMD; .VBS; .VBE; .JS ; .WSF; .WSH.
  • %PROGRAMFILES% - Ruta de la carpeta archivos de programa
    • C:\Archivos de programa
  • %PROMPT% - Formato del intérprete de comandos
    • $P$G
  • %SYSTEMDRIVE% - Unidad en la que se ha instalado Windows
    • C:
  • %SYSTEMROOT% y %WINDIR% - Contiene la carpeta de Windows
    • C:\Windows
  • %TEMP% y %TMP% - Ruta de la carpeta Temp
    • C:\DOCUME~1\{usuario}\LOCALS~1\Temp
  • %USERNAME% - Nombre de usuario actual
    • Softonic
  • %DATE% - Fecha actual
    • 05/12/2008
  • %TIME% - Hora actual
    • 12:52:22,07
  • %CD% - Carpeta actual con su ruta completa
    • C:\Prueba
  • %ERRORLEVEL% - Código de salida del comando anterior
    • 0
  • %RANDOM% - Número aleatorio de 0 a 32767
    • 903

Esta lista no deja de ser un extracto de las variables de entorno más importantes. Lo cierto es que hay más e incluso puedes añadir las tuyas propias.

Para modificar o añadir variables, tienes que ir al Panel de Control / Sistema  (atajo: Win + Pausa). Después encamínate hacia la pestaña Opciones avanzadas y pulsa en el botón Variables de Entorno.

Mi recomendación personal es que no modifiques las variables del sistema salvo que sepas perfectamente lo que estás haciendo. Si quieres añadir alguna variable nueva, hazlo en las variables de usuario.

Caso práctico 1. Variables de entorno como atajos

Si quieres acceder a la carpeta Datos de programa, puedes hacerlo de dos formas. La primera implica abrir el explorador, ir a Documents and Settings, buscar el usuario actual y entrar en la carpeta correspondiente.

Utilizando variables de entorno, sólo tienes que escribir %APPDATA% en la barra de direcciones y pulsar Enter. Resulta de especial utilidad si estás en un ordenador ajeno y no quieres tener que buscar dónde están "las cosas".

Caso práctico 2. Variables de entorno en archivos BAT

Los archivos de procesamiento por lotes, o archivos BAT, tuvieron su momento de gloria en los tiempos de MS-DOS, pero no por ello han dejado de ser útiles en la actualidad.

Con el uso de variables de entorno puedes mejorar su utilidad y adaptabilidad a otros equipos con distinta configuración. Un ejemplo práctico, que borrará los archivos temporales.

>> limpieza.bat (podría colocarse en el Inicio de Windows) @CD %TEMP% @del *.* /s /q @echo Carpeta de archivos temporales eliminada @pause

Enlaces

  • Envman - Gestor de variables de entorno para Windows.
  • NirCmd - Funciones adicionales para línea de comandos.

Comentarios

  • ToRA |
    17/12/08
    ToRA

    jé, tonto de mí, pensé que el post iría sobre deskmod :)

  • Cerbero |
    17/12/08
    Cerbero

    Asi que eso era el %temp%... Voy a guardar esta lista. Muy buen articulo!.

  • McFly_24 |
    17/12/08
    McFly_24

    A mi me va a venir de perillas, aplicandolo, a la instalacion de Cibers y Redes... Solo me queda tener un programita que me genere los .BAT para evitar errores! :P

  • mortanauta |
    18/12/08
    mortanauta

    @McFly_24 Un bat no es más que un archivo de texto, lo puedes generar con el bloc de notas en formato txt y luego le cambias la extensión. Para evitar los errores primero pruebalo en un entorno aislado, como una maquina virtual y cuando esté correcto pasalo al resto de los equipos.

    De todas, si es para un cyber, igual te conviene pasar por esta web http://www.faronics.com/ Sobre todo el Deepfreze te puede venir bien, no es gratis, pero sé de gente que está muy contenta con él

  • McFly_24 |
    18/12/08
    McFly_24

    Ya lo conocia, y se me resiste su instalacion/configuracion, puesto que luego si pretendo eliminarlo me he visto con problemas para hacerlo.

    De momento tiro de Ghost, cuando me arte, restauro y listo... de mientras que hagan lo que quieran durante la semana, ademas si falla algo en Windows, puedo restaurar facilmente el sistema metiendo el CD de Ghost.

    El problema de los Batchs, basicamente, es el conocer los scripts, comandos y variables que se pueden utilizar, por ejemplo: ejecutar un instalador, desatendidamente, que no pregunte al usuario nada, que eliminen los accesos directos, etc, tal cual hacen los WPI de los UnAttended, por ejemplo... Probar todo eso es volverse loco, pero con algun programa que lo genere, pues facilita muchas horas de trabajo, prueba/fallo y grandes desastres! :P

  • Manuel |
    19/12/08
    Manuel

    ¿nadie se acuerda de MS-Dos? por aquellos dias trabajar con variables era corriente y todos sabiamos que era un fichero de procesamiento por lotes. Los "informaticos" recien llegados no se acuerdan de aquellos dias, claro!! jaja

  • stewar |
    19/12/08
    stewar

    muy buena info

    quisiera saber si alguno de ustedes sabe arto sobre batch q me enseñara

    quiero una especie de profesor =D

    mi correo es stewaryankee@hotmail.com o dark_col@hotmail.com

  • McFly_24 |
    19/12/08
    McFly_24

    En mi caso, no soy informatico, sino que trabajo en una tienda de informatica... :P es distinto!

  • Kervin Vergara |
    22/12/08
    Kervin Vergara

    Curiosamente he realizado lo del siguiente código:

    @CD %TEMP% @del *.* /s /q @echo Carpeta de archivos temporales eliminada @pause

    En un fichero BAT. Al momento de ejecutarlo, me ha borrado todos los ficheros contenidos en "Mis documentos". ¿Qué puede ser? No le encuentro lógica hasta ahora...

    ¡Muy buen artículo! Saludos.

  • Iván Ramírez |
    22/12/08
    Iván Ramírez

    Espero que no hayas perdido nada importante :P

    Hay que tener mucho cuidado con esos comandos, en especial si utilizas "del /q" que significa que no preguntará antes de borrar y /s que eliminará todas la subcarpetas.

    Prueba a eliminar la línea de DEL y cambiarla por un inofensivo DIR o similar.

    Comprueba igualmente que CD %TEMP% te lleva a la carpeta adecuada. Un equivalente es %TMP%

  • Pau |
    26/03/09
    Pau

    Para Kervin Vergara: mira cuál es el contenido de la variable %TEMP% (o %TMP% como sugiere Iván) para estar seguro de que estás yendo a la ruta correcta. El comando CD permite cambiar la ruta activa en una unidad, pero si estás en otra unidad, no te cambia. Esto me ha pasado ;)

    Me explico: supongamos que tienes el script en "c:\documents and settings\user\mis documentos", pero la ruta de la carpeta temporal (el contenido de la variable %TEMP%) es "E:\TEMP". En este caso el comando CD %TEMP% hará que la ruta activa en la unidad E cambie, PERO NO TE HACE QUE CAMBIES A LA UNIDAD E, por lo que, como estás en la unidad C, tu ruta seguirá siendo la de "Mis documentos", y por tanto el "del *.*" se ejecutará sobre "Mis documentos" :O

    Como bien dice Iván, utiliza comandos inofensivos como DIR para comprobar que estás haciendo lo correcto. Yo suelo usar ECHO para que me muestre el comando que va a utilizar, en vez de ejecutarlo (por ejemplo "ECHO CD %temp%"... aunque con comandos más complejos y con más variables se ve mejor este ejemplo), y cuando lo tengo claro, quito el ECHO y ya dejo que se ejecute el comando.

    Sugerencia: utiliza %CD% para saber si estás en la ruta correcta, comparando con %TEMP% en este caso.

  • Franky |
    19/06/09
    Franky

    Podria alguien decirme un comando para borra el historial

  • cipachoc |
    25/06/09
    cipachoc

    para franky puedes utilizar al comando G

  • Franky |
    30/06/09
    Franky

    Gracias a cipachoc por responder pero el comando G como tu mismo lo has dicho no vale quiero decir cuando lo pongo en el MS-DOS (Simbolo del sistema o CMD) me dice que G no es un comando interno o externo del sistema me podeis decir un comando que me sirva utilzo el XP Pro a lo mejor el comando G solo funcionaba en el Win 98 gracias de todos modos por responder.

  • guyu |
    16/09/09
    guyu

    jajajajajajaja, lo siento pero me ha salido espontaneo.

  • Getzemani Medina |
    22/10/09
    Getzemani Medina

    Hola, tengo un problema para abrir microsoft Office Word 2007, dice: Word no pudo crear el archivo de trabajo. Compruebe la variable de entorno personal. Este mensaje sale cada que abro un documento nuevo o algunos reciente. Abre Word si le digo aceptar, a veces son hasta 3 veces las que tengo que dar enter. Intente poner algunos de las variables que dicen arriba, pero apun asi no desaparece el mensaje. Espero que alguien me pueda ayudar. Muchisímas Gracias.

  • bibi_lolo |
    28/01/10
    bibi_lolo

    Hola, muy buen artículo, gracias.

    ¿Sabrías decirme si cambiar el valor de la variable de entorno USERPROFILE permite reubicar Mis Documentos en otra unidad?

    En XP, es evidente, pero en Vista hay que hacerlo carpeta por carpeta, con lo que si pudieramos cambiar la variable de entorno del usuario, se haría en un solo maso.

  • felix |
    12/09/10
    felix

    hola nececito borrar la CARPETA temporales de todos los usuarios de una pc y quisiera ahorrar tiempo y no hacerlo de uno x uno algioen podria decirme como se los agradeceria bastante

  • Edson |
    15/09/10
    Edson

    Esto podria Servir..

    @echo off del /S /Q /F /A RHSA %temp%\*.* del /S /Q /F /A RHSA "%userprofile%\CONFIG~1\Archivos temporales de Internet\Content.IE5"\*.* del /S /Q /F /A RHSA "%userprofile%\CONFIG~1\Archivos temporales de Internet"\*.* del /S /Q /F /A RHSA "%userprofile%\Reciente"\*.* del /S /Q /F /A RHSA "%systemroot%\Temp"\*.* del /S /Q /F /A RHSA "C:\WINDOWS\SoftwareDistribution\Download"\*.* RD %systemdrive%\RECYCLER /S /Q del /S /Q /F /A RHSA "%systemroot%\Prefetch"\*.* RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 4351 exit

  • Renato |
    19/10/10
    Renato

    Hay un comando que lista todas esas variables (y las que estén definidas en el sistema en particular), justo ahora lo ando buscando como loco y no lo encuentro xD.

  • LUIS T. |
    14/08/11
    LUIS T.

    ES MUY BUENA INFORMACION, UTIL AUN.

  • Adolfo González Hernández |
    15/08/11
    Adolfo González Hernández

    Muchas gracias, caballeros, por esta ofrenda. Nunca pensé encontrarme con algo excelente para los usuarios que somos legos en estas cosas y no poseemos suficientes recursos económicos para gozar de las ventajas que nos ofrecen. Saludos desde El Salvador. Que DIOS os premie. Felicidades. Os reitero mi gratitud. Sinceramente: Adolfo González Hernández.

  • reyes |
    27/08/11
    reyes

    ok gracias. Valiosa información

  • ezequiel |
    03/11/11
    ezequiel

    buenas

    minombre es ezequiel pues yo soy un pokito bruto para muchas cosas pero lo k me falta para las otras cosas me sobra para las cosas de computadores kisiera apreder de todo lo k puedo hacer en un computador en estos dias estube biendpajina similares a este y me gustaron muchas k hablan sobre archibos .bat .cmd .vbs y kisiera saber si alguien k tenta tiempo me podria enseñar cosas k sepa grasias mi correo es

    arcangelpapi17@hotmail.com

  • Guillermo Velasquez |
    30/05/12
    Guillermo Velasquez

    perdonen la consulta, yo tengo un archivo que le he dado "abrir con" un archivo *.bat, lo que quiero es que cuando le de doble click al archivo lo abra con el bat y me imprima en pantalla el nombre del archivo , si me pueden ayudar seria de mucha ayuda, de antemano gracias

  • javier hakcer |
    04/07/12
    javier hakcer

    quiero aprender a hakcear me pueden hayudar con alguna pagina para prender

  • Allan |
    19/10/12
    Allan

    No entendenti, me confundieron :(

  • leonfher |
    20/03/13
    leonfher

    ezequiel anda buscando macho jajaja y el que quiere aprender a "hakcear" si asi va a aprender con los errores de ortografia en programacion "nomas la va pelar" javier hakcer jajaja semejante BRUTUS jajaja como me divierto viendo estos comentarios kevin vergara no seas bruto acaso no vez que del es borrar pues como no te va borrar sabra dios que pendejada le haces a tu maquina con los .bat

  • diego |
    24/04/13
    diego

    hola quisiera que alguien me diga como puedo solucionar mi menseger porque borre lo que estaba en PATH y ahora no me anda, de donde puedo sacar el nombre del progama para poner en PATH

19/04/14
Tu imagen de usuario