stringtranslate.com

Variable de entorno

Una variable de entorno es un valor definible por el usuario que puede afectar la forma en que se comportarán los procesos en ejecución en una computadora. Las variables de entorno son parte del entorno en el que se ejecuta un proceso. Por ejemplo, un proceso en ejecución puede consultar el valor de la variable de entorno TEMP para descubrir una ubicación adecuada para almacenar archivos temporales , o la variable HOME o USERPROFILE para encontrar la estructura de directorio que posee el usuario que ejecuta el proceso.

Se introdujeron en su forma moderna en 1979 con la versión 7 de Unix , por lo que se incluyen en todos los sabores y variantes del sistema operativo Unix desde ese momento en adelante, incluidos Linux y macOS . Desde PC DOS 2.0 en 1982, todos los sistemas operativos Microsoft posteriores , incluidos Microsoft Windows y OS/2, también los han incluido como una característica, aunque con una sintaxis, un uso y nombres de variable estándar algo diferentes.

Diseño

En todos los sistemas Unix y similares a Unix , así como en Windows, cada proceso tiene su propio conjunto independiente de variables de entorno . De forma predeterminada, cuando se crea un proceso, hereda un entorno de ejecución duplicado de su proceso padre, excepto por los cambios explícitos realizados por el padre cuando crea el hijo. A nivel de API , estos cambios deben realizarse entre el proceso en ejecución forky el proceso secundario exec. Alternativamente, desde los shells de comandos como bash , un usuario puede cambiar las variables de entorno para una invocación de comando en particular invocándola indirectamente a través de envo usando la ENVIRONMENT_VARIABLE=VALUE <command>notación. Un programa en ejecución puede acceder a los valores de las variables de entorno para fines de configuración.

Los scripts de shell y los archivos por lotes utilizan variables de entorno para comunicar datos y preferencias a los procesos secundarios . También se pueden utilizar para almacenar valores temporales para consultarlos más adelante en un script de shell. Sin embargo, en Unix, se prefieren las variables no exportadas para esto, ya que no se filtran fuera del proceso.

En Unix, una variable de entorno que se modifica en un script o programa compilado solo afectará a ese proceso y, posiblemente, a los procesos secundarios. El proceso principal y cualquier proceso no relacionado no se verán afectados. De manera similar, cambiar o eliminar el valor de una variable dentro de un archivo por lotes de DOS o Windows cambiará la variable durante la existencia de COMMAND.COMo CMD.EXE, respectivamente.

En Unix, las variables de entorno normalmente se inicializan durante el inicio del sistema mediante los scripts de inicio del sistema init y, por lo tanto, son heredadas por todos los demás procesos del sistema. Los usuarios pueden, y a menudo lo hacen, aumentarlas en el script de perfil para el shell de comandos que están utilizando. En Microsoft Windows, el valor predeterminado de cada variable de entorno se almacena en el Registro de Windows o se configura en el archivo.AUTOEXEC.BAT

En Unix , un programa setuid recibe un entorno elegido por su invocador, pero se ejecuta con una autoridad diferente a la de su invocador. El enlazador dinámico normalmente cargará código desde las ubicaciones especificadas por las variables de entorno $LD_LIBRARY_PATHy $LD_PRELOADlo ejecutará con la autoridad del proceso. Si un programa setuid hiciera esto, sería inseguro, porque su invocador podría hacer que ejecute código arbitrario y, por lo tanto, hacer un mal uso de su autoridad. Por este motivo, libc anula estas variables de entorno al inicio en un proceso setuid. Los programas setuid normalmente anulan las variables de entorno desconocidas y comprueban otras o las establecen en valores razonables.

En general, la colección de variables de entorno funciona como una matriz asociativa donde tanto las claves como los valores son cadenas. La interpretación de los caracteres en cada cadena difiere entre sistemas. Cuando es necesario representar estructuras de datos como listas, es común utilizar una lista delimitada por dos puntos (común en Unix y sistemas similares a Unix) o por punto y coma (común en Windows y DOS).

Sintaxis

Las variables se pueden utilizar tanto en scripts como en la línea de comandos . Normalmente se hace referencia a ellas colocando símbolos especiales delante o alrededor del nombre de la variable.

Es habitual que los nombres de las variables de entorno se elijan en mayúsculas. En el código de programación en general, esto ayuda a distinguir las variables de entorno de otros tipos de nombres en el código. Los nombres de las variables de entorno distinguen entre mayúsculas y minúsculas en los sistemas operativos tipo Unix, pero no en DOS, OS/2 y Windows.

Unix

En la mayoría de los shells de línea de comandos de Unix y similares , el valor de una variable de entorno se recupera colocando un $signo antes del nombre de la variable. Si es necesario, el nombre también puede ir entre llaves.

Para mostrar el directorio de inicio del usuario, el usuario puede escribir:

eco $INICIO 

En sistemas Unix y similares, los nombres de las variables de entorno distinguen entre mayúsculas y minúsculas.

El comando envmuestra todas las variables de entorno y sus valores. El comando printenvtambién se puede utilizar para imprimir una sola variable indicando el nombre de esa variable como único argumento del comando.

DOS, OS/2 y Windows

En los intérpretes de línea de comandos de DOS, OS/2 y Windows, como COMMAND.COMy CMD.EXE, una variable de entorno se recupera colocando un %signo antes y después de ella.

En los intérpretes de línea de comandos de DOS, OS/2 y Windows, así como en sus API , no se distingue entre mayúsculas y minúsculas para los nombres de variables de entorno.

La variable de entorno nombrada HOMEDRIVEcontiene la letra de la unidad (más los :dos puntos finales) del directorio de inicio del usuario, mientras que HOMEPATHcontiene la ruta completa del directorio de inicio del usuario dentro de esa unidad.

Entonces, para ver la unidad y la ruta de inicio, el usuario puede escribir lo siguiente:

ECHO  %HOMEDRIVE%%RUTA DE INICIO%

El comando SET(sin argumentos) muestra todas las variables de entorno y sus valores. En Windows NT y versiones posteriores settambién se puede utilizar para imprimir todas las variables cuyo nombre comience con un prefijo determinado, dando el prefijo como único argumento del comando.

En Windows PowerShell , el usuario puede escribir cualquiera de los siguientes:

echo $env:homedrive$env:homepath Escritura-Salida  $env:homedrive $env:homepath "$env:homedrive$env:homepath"

En PowerShell, no se distingue entre mayúsculas y minúsculas para los nombres de variables de entorno.

El siguiente comando muestra todas las variables de entorno y sus valores:

obtener-elemento-hijo  env :

Tarea: Unix

Los comandos envy setse pueden utilizar para establecer variables de entorno y a menudo se incorporan directamente al shell.

También se pueden utilizar los siguientes comandos, pero a menudo dependen de un shell determinado.

VARIABLE = valor # (no debe haber espacios alrededor del signo igual)export VARIABLE # para Bourne y shells relacionados
export VARIABLE = valor # para ksh , bash y shells relacionados
Valor de la variable setenv # para csh y shells relacionados

Unos pocos principios simples rigen cómo las variables de entorno logran su efecto.

Las variables de entorno son locales para el proceso en el que se establecieron. Si se generan dos procesos de shell y se modifica el valor de una variable de entorno en uno, el otro no verá ese cambio.

Cuando se crea un proceso hijo, hereda todas las variables de entorno y sus valores del proceso padre. Por lo general, cuando un programa llama a otro programa, primero crea un proceso hijo mediante una bifurcación , luego el proceso hijo ajusta el entorno según sea necesario y, por último, se reemplaza a sí mismo con el programa que se va a llamar. Este procedimiento le otorga al programa que realiza la llamada el control sobre el entorno del programa llamado.

En los shells de Unix, las variables se pueden asignar sin la exportpalabra clave. Las variables definidas de esta manera se muestran mediante el setcomando, pero no son verdaderas variables de entorno, ya que solo las almacena el shell y son desconocidas para todos los demás procesos. El printenvcomando no las mostrará y los procesos secundarios no las heredarán.

VARIABLE = valor

La sintaxis del prefijo exporta una variable de entorno "verdadera" a un proceso secundario sin afectar al proceso actual: [1]

VARIABLE = valor nombre_programa [argumentos]

La persistencia de una variable de entorno puede ser a nivel de toda la sesión o de todo el sistema.

unsetes un comando incorporado implementado tanto por la familia Bourne shellsh ( , ksh, bash, etc.) como por la familia C shell (csh, tcsh, etc.) de shells de línea de comandos de Unix . Desactiva una variable de shell, eliminándola de la memoria y del entorno exportado del shell. Se implementa como un comando incorporado de shell , porque manipula directamente los componentes internos del shell. [2] [3] Las variables de shell de solo lectura no se pueden desactivar. Si uno intenta desactivar una variable de solo lectura, el unsetcomando imprimirá un mensaje de error y devolverá un código de salida distinto de cero.

Asignación: DOS, OS/2 y Windows

En los intérpretes de línea de comandos de DOS, OS/2 y Windows, como COMMAND.COMy CMD.EXE, el SETcomando se utiliza para asignar variables de entorno y valores utilizando los siguientes argumentos:

 CONJUNTO  VARIABLE = valor

Una variable de entorno se elimina mediante:

 ESTABLECER  VARIABLE =

El SETcomando sin argumentos muestra todas las variables de entorno junto con sus valores; SET " "cero o más espacios también incluirán las variables internas. En CMD.EXE, es posible asignar variables locales que no serán globales mediante el SETLOCALcomando y ENDLOCALrestaurar el entorno.

Utilice el interruptor /? para mostrar la documentación interna , o utilice el visor help :

 COLOCAR  /? AYUDA CONJUNTA Establecerlocal /? AYUDA A SETLOCAL


En PowerShell , la asignación sigue una sintaxis similar a Unix:

 $env:VARIABLE  =  "VALOR"

Ejemplos

Algunos ejemplos de variables de entorno incluyen:

Variables de entorno reales

Unix

$PATH
Contiene una lista separada por dos puntos de directorios en los que el shell busca comandos que no contienen una barra en su nombre (los comandos con barras se interpretan como nombres de archivos para ejecutar y el shell intenta ejecutar los archivos directamente). Es equivalente a la variable DOS , OS/2 y Windows . %PATH%
$HOME
Contiene la ubicación del directorio de inicio del usuario . Aunque el directorio de inicio del usuario actual también se puede encontrar a través de las funciones de C getpwuidy getuid, $HOMEse utiliza a menudo por conveniencia en varios scripts de shell (y otros contextos). El uso de la variable de entorno también le da al usuario la posibilidad de señalar otro directorio.
$PWD
Esta variable apunta al directorio actual. Equivale a la salida del comando pwd cuando se lo llama sin argumentos.
$DISPLAY
Contiene el identificador de la pantalla que los programas X11 deben utilizar de forma predeterminada.
$LD_LIBRARY_PATH
En muchos sistemas Unix con un enlazador dinámico , contiene una lista separada por dos puntos de directorios en los que el enlazador dinámico debe buscar objetos compartidos al crear una imagen de proceso después de exec, antes de buscar en cualquier otro directorio.
$LIBPATHo$SHLIB_PATH
Alternativas a las que $LD_LIBRARY_PATHnormalmente se utilizan en versiones anteriores de Unix.
$LANG, $LC_ALL, $LC_...
$LANGse utiliza para establecer la configuración regional predeterminada . Por ejemplo, si los valores de configuración regional son pt_BR, entonces el idioma se establece en portugués (brasileño) y se utiliza la práctica brasileña cuando es relevante. Diferentes aspectos de la localización se controlan mediante $LC_variables individuales ( $LC_CTYPE, , etc.). se puede utilizar para forzar la misma configuración regional para todos los aspectos.$LC_COLLATE$LC_DATE$LC_ALL
$TZ
Se refiere a la zona horaria . Puede tener varios formatos, ya sea especificando la zona horaria en sí o haciendo referencia a un archivo (en /usr/share/zoneinfo).
$BROWSER
Contiene una lista separada por dos puntos de las preferencias del navegador web de un usuario , para su uso por parte de programas que necesitan permitir al usuario ver contenido en una URL . Los navegadores de la lista están pensados ​​para que se prueben desde el primero hasta el último, deteniéndose después del primero que tenga éxito. Esta disposición permite un comportamiento de respaldo en diferentes entornos, por ejemplo, en un entorno X11 , se puede utilizar un navegador gráfico (como Firefox ), pero en un entorno de consola se puede utilizar un navegador basado en terminal (como Lynx ). %sPuede haber un token para especificar dónde se debe colocar la URL; de lo contrario, el navegador se debe iniciar con la URL como primer argumento. [5] [6] [7] [8] [9]

Dos

En DOS, el entorno maestro lo proporciona el procesador de comandos primario, que hereda el entorno previo definido en CONFIG.SYScuando se carga por primera vez. Su tamaño se puede configurar a través del COMMAND /E:nparámetro entre 160 [10] y 32767 [10] bytes. Los segmentos del entorno local heredados a los procesos secundarios se reducen normalmente al tamaño de los contenidos que contienen. Algunos procesadores de línea de comandos (como 4DOS ) permiten definir una cantidad mínima de espacio libre en el entorno que estará disponible al iniciar shells secundarios. [10] Si bien el contenido de las variables de entorno permanece inalterado al almacenarse, sus nombres (sin el " %") siempre se convierten a mayúsculas, con la excepción de las variables de entorno previas definidas a través de la CONFIG.SYSdirectiva SETen DR DOS 6.0 y versiones posteriores [11] [12] (y solo con SWITCHES=/L(para "permitir nombres en minúsculas") en DR-DOS 7.02 y versiones posteriores). [10] [13] En principio, MS-DOS 7.0 y superior también admite nombres de variables en minúsculas ( %windir%), pero no proporciona medios para que el usuario los defina. Los nombres de variables de entorno que contienen letras minúsculas se almacenan en el entorno al igual que las variables de entorno normales, pero permanecen invisibles para la mayoría del software DOS, ya que están escritos para esperar solo variables en mayúsculas. [10] [11] [12] Algunos procesadores de comandos limitan la longitud máxima de un nombre de variable a 80 caracteres. [10] Aunque principalmente solo está limitado por el tamaño del segmento de entorno , algunos programas DOS y Windows de 16 bits [10] [nb 1] no esperan que el contenido de las variables de entorno supere los 128 caracteres. DR-DOS COMMAND.COMadmite variables de entorno de hasta 255, 4DOS incluso hasta 512 caracteres. [10] Dado que COMMAND.COMse puede configurar (a través de /L:128..1024) para admitir líneas de comando de hasta 1024 caracteres internamente en MS-DOS 7.0 y superior, se debe esperar que las variables de entorno también contengan al menos 1024 caracteres. En algunas versiones de DR-DOS, el entorno pasado a los controladores, que a menudo no necesitan su entorno después de la instalación, se puede reducir o reubicar mediante las opciones SETENVo (entorno cero), (unidad sustituta, por ejemplo ) y (reubicar el entorno por encima del programa) para minimizar la huella de memoria residente resultante del controlador .INSTALL[HIGH]LOADHIGH/Z/D[:loaddrive]B:TSR.COM/E[14] [13] [11] [15] [16] [17]

En el modo por lotes, las variables de entorno inexistentes se reemplazan por una cadena de longitud cero.

Las variables de entorno estándar o variables de entorno reservadas incluyen:

%APPEND%(compatible desde DOS 3.3)
Esta variable contiene una lista de directorios delimitada por punto y coma en la que se buscarán archivos. Normalmente se cambia mediante el APPEND /Ecomando , que también garantiza que los nombres de los directorios se conviertan a mayúsculas. Algunos programas de DOS esperan que los nombres se almacenen en mayúsculas y que la longitud de la lista no supere los 121 [10] caracteres, por lo que es mejor no modificar la variable mediante el SETcomando. Los nombres de archivo largos que contienen espacios u otros caracteres especiales no deben ir entre comillas ( ").
%CONFIG%(compatible desde MS-DOS 6.0 y PC DOS 6.1 , también compatible con ROM-DOS [18] )
Esta variable contiene el nombre simbólico de la configuración de arranque elegida actualmente. La BIOS DOS ( IO.SYS, IBMBIO.COM, etc.) la establece con el nombre definido por la CONFIG.SYSdirectiva correspondiente MENUITEMantes de iniciar el procesador de comandos principal. Su propósito principal es permitir casos especiales adicionales en AUTOEXEC.BATtrabajos por lotes similares según la opción seleccionada en el momento del arranque. Esto se puede emular en DR-DOS utilizando la CONFIG.SYSdirectiva SETcomo SET CONFIG=1.
%CMDLINE%(introducido con 4DOS , también compatible desde MS-DOS 7.0 )
Esta variable contiene el texto completamente expandido de la línea de comandos que se está ejecutando actualmente. Las aplicaciones pueden leerla para detectar el uso de líneas de comandos largas y recuperarlas, ya que el método tradicional para recuperar los argumentos de la línea de comandos a través de la PSP (o funciones API relacionadas ) está limitado a 126 caracteres y ya no está disponible cuando se expanden los FCB o se utiliza el DTACOMMAND.COM predeterminado. Si bien 4DOS admite líneas de comandos más largas, todavía solo admite un máximo de 126 caracteres en el indicador de forma predeterminada (a menos que se anule con /U:128..255para especificar el tamaño del búfer de la línea de comandos), pero, sin embargo, las líneas de comandos internas pueden volverse más largas a través de la expansión de la variable fe (dependiendo de /L:128..1024para especificar el tamaño del búfer interno). Además del byte de longitud de la línea de comandos en la PSP, la línea de comandos de la PSP normalmente está limitada por ASCII-13 , y las líneas de comandos más largas de 126 caracteres normalmente se truncarán al tener un ASCII-13 insertado en la posición 127, [12] pero no se puede confiar en esto en todos los escenarios. [12] [nb 2] La variable se suprimirá para los comandos externos invocados con un @símbolo - precedente como en @XCOPY ...para compatibilidad con versiones anteriores y para minimizar el tamaño del entorno al cargar programas residentes que no se reubican y que permanecen en el sistema . Algunas versiones beta de Windows Chicago solían %CMDLINE%almacenar solo el resto de la línea de comandos que excedía los 126 caracteres en lugar de la línea de comandos completa. [11] [12]
%COMSPEC%(compatible desde DOS 2.0)
Esta variable contiene la ruta completa 8.3 al procesador de comandos , normalmente o . No debe contener nombres de archivo largos , pero bajo DR-DOS puede contener contraseñas de archivos y directorios . El procesador de comandos principal la configura para que apunte a sí mismo (normalmente reflejando la configuración de la directiva ), de modo que la parte residente del procesador de comandos pueda recargar su parte transitoria desde el disco después de la ejecución de programas más grandes. El valor se puede cambiar en tiempo de ejecución para reflejar cambios en la configuración, lo que requeriría que el procesador de comandos se recargue a sí mismo desde otras ubicaciones. La variable también se utiliza al iniciar shells secundarios.C:\COMMAND.COMC:\DOS\COMMAND.COMCONFIG.SYSSHELL
%COPYCMD%(compatible desde MS-DOS 6.2 y PC DOS 6.3 , también compatible con ROM-DOS [18] )
Permite que un usuario especifique el /Ymodificador (asumir "Sí" en las consultas) como predeterminado para los comandos COPY, XCOPYy . Se puede anular MOVEun valor predeterminado de proporcionando el modificador en la línea de comandos. El modificador indica al comando que reemplace los archivos existentes sin solicitar confirmación./Y/-Y/Y
%DIRCMD%(compatible desde MS-DOS 5.0 y PC DOS 5.0 , también compatible con ROM-DOS [18] )
Permite que un usuario especifique parámetros predeterminados personalizados para el DIRcomando, incluidas las especificaciones de archivo. Los parámetros predeterminados preestablecidos se pueden anular proporcionando el parámetro negativo en la línea de comandos. Por ejemplo, si %DIRCMD%contiene el /Wparámetro, se puede anular utilizando DIR /-Wen la línea de comandos. Esto es similar a la variable de entorno %$DIR%en DOS Plus [19] y una función para definir parámetros predeterminados para DIRa través de sus parámetros /Co en DR-DOS . [11] también es compatible con los comandos externos / Stacker en Novell DOS 7 y versiones superiores. [11]/R COMMAND.COM %DIRCMD%SDIR.COMDIR.COM
%LANG%(compatible desde MS-DOS 7.0 )
Algunas herramientas admiten esta variable para cambiar la configuración regional de los mensajes en problemas multilingües.
%LANGSPEC%(compatible desde MS-DOS 7.0 )
Algunas herramientas admiten esta variable para cambiar la configuración regional de los mensajes en problemas multilingües.
%NO_SEP%(compatible desde PC DOS 6.3 y DR-DOS 7.07 )
Esta variable controla la visualización de los separadores de miles en los mensajes de varios comandos. Se emiten de forma predeterminada y se pueden suprimir especificando SET NO_SEP=ONo SET NO_SEP=1en PC DOS. DR-DOS también permite anular el separador de miles del sistema que se muestra como en fe SET NO_SEP=.. [10]
%PATH%(compatible desde DOS 2.0)
Esta variable contiene una lista de directorios delimitada por punto y coma en la que el intérprete de comandos buscará archivos ejecutables . Equivale a la $PATHvariable Unix (pero algunas aplicaciones DOS y Windows también usan la lista para buscar archivos de datos de manera similar a $LD_LIBRARY_PATHlos sistemas tipo Unix). Generalmente se cambia mediante el comando PATH(o PATH /Een MS-DOS 6.0 ), que también garantiza que los nombres de los directorios se conviertan a mayúsculas. Algunos programas DOS esperan que los nombres se almacenen en mayúsculas y que la longitud de la lista no exceda los 123 [10] caracteres, [nb 1] por lo tanto, es mejor no modificar la variable mediante el SETcomando. [10] Los nombres de archivo largos que contienen espacios u otros caracteres especiales no deben ir entre comillas ( "). De manera predeterminada, se busca primero en el directorio actual, pero algunos procesadores de línea de comandos como 4DOS permiten que también se incluya " ." (para "directorio actual") en la lista para anular este orden de búsqueda; algunos programas DOS son incompatibles con esta extensión. [10]
%PROMPT%(compatible desde DOS 2.0)
Esta variable contiene una $cadena con token que define la visualización del mensaje . Normalmente se modifica mediante el PROMPTcomando.
%TEMP%(y %TMP%)
Estas variables contienen la ruta al directorio donde se deben almacenar los archivos temporales%TEMP% . Las herramientas del sistema operativo normalmente solo utilizan , mientras que los programas de terceros también utilizan %TMP%. Normalmente %TEMP%tiene prioridad sobre %TMP%.

La familia DR-DOS admite una serie de variables de entorno estándar adicionales , entre las que se incluyen:

%BETA%
Esta variable contiene un mensaje opcional que se muestra en algunas versiones (incluida DR DOS 3.41 ) COMMAND.COMal iniciar los shells secundarios. [20]
%DRDOSCFG%/ %NWDOSCFG%/%OPENDOSCFG%
Esta variable contiene el directorio [21] (sin " \" final) donde buscar archivos de configuración .INIy .CFG(es decir, archivos específicos de la aplicación DR-DOS como TASKMGR.INI, TASKMAX.INI, VIEWMAX.INI, FASTBACK.CFGetc., archivos específicos de clase como COLORS.INI, o archivos globales como DRDOS.INI, NWDOS.INI, OPENDOS.INI, o DOS.INI), como los que usan los INSTALLcomandos SETUPy y varios programas DR-DOS como DISKOPT, DOSBOOK, EDIT, FBX, FILELINK, LOCK, SECURITY.OVL/ NWLOGIN.EXE, SERNO, TASKMAX, TASKMGR, VIEWMAX, o UNDELETE. [11] No debe contener nombres de archivo largos .
%DRCOMSPEC%
Esta variable contiene opcionalmente una ruta alternativa al procesador de comandos que tiene prioridad sobre la ruta definida en la %COMSPEC%variable, incluyendo opcionalmente contraseñas de archivos y directorios . Alternativamente, puede contener un valor especial de " " o " " para imponer el uso de la variable incluso en escenarios donde la variable puede apuntar al procesador de línea de comandos incorrecto, por ejemplo, al ejecutar algunas versiones del comando DR-DOS bajo un sistema operativo externo. [22]ON1%COMSPEC%%COMSPEC%SYS
%DRSYS%
Establecer esta variable en " ON" o " 1" obligará a algunas versiones del SYScomando DR-DOS a funcionar en sistemas operativos externos en lugar de mostrar una advertencia. [22]
%FBP_USER%
Especifica el nombre de usuario utilizado por el comando FastBackFBX y los archivos de configuración en Novell DOS 7. [ 11]{user}.FB
%HOMEDIR%
Esta variable puede contener el directorio de inicio en DR-DOS (incluido DR DOS 5.0 y 6.0 ). [11] [20]
%INFO%
En algunas versiones de DR-DOS COMMAND.COMesta variable define la cadena mostrada por el $Itoken del PROMPTcomando. [20] Se puede utilizar, por ejemplo, para informar al usuario cómo salir de los shells secundarios.
%LOGINNAME%
En algunas versiones de DR-DOS, COMMAND.COMesta variable define el nombre de usuario que se muestra en el $Utoken del PROMPTcomando, tal como lo configuran los scripts de inicio de sesión fe para Novell NetWare . [10] [11] [20] Consulte también la pseudovariable con un nombre similar %LOGIN_NAME%.
%MDOS_EXEC%
Esta variable puede tomar los valores " ON" o " OFF" en DOS multiusuario . Si está habilitada, el sistema operativo permite que las aplicaciones se ejecuten en shells secundarios con el Área de Programa DOS (DPA) liberada para tener la máxima memoria DOS disponible para aplicaciones secundarias en lugar de ejecutarlas en el mismo dominio que en DOS. [23] [24]
%NOCHAR%
Esta variable se puede utilizar para definir el carácter que se muestra en algunos comandos en los mensajes de "No" en [Y,N]las consultas, anulando así el valor predeterminado actual del sistema (normalmente " N" en las versiones en inglés de DR-DOS). Si contiene una cadena, solo se tomará el primer carácter, en mayúsculas. Algunos comandos también admiten un parámetro de línea de comandos /Ypara asumir automáticamente "Sí" en las consultas, suprimiendo así dichos mensajes. Sin embargo, si el parámetro /Y:ynse utiliza para especificar los caracteres "Sí"/"No" (anulando así cualquier configuración), las consultas no se suprimen. Consulte también la directiva %NOCHAR%relacionada y la variable de entorno . [22]CONFIG.SYSNOCHAR%YESCHAR%
%NOSOUND%
Si se configura esta variable como " ON" o " 1", se desactivarán los pitidos predeterminados emitidos por algunos comandos DR-DOS en determinadas situaciones, como para informar al usuario de la finalización de alguna operación, de que se requiere la interacción del usuario o cuando se presionó una tecla incorrecta. Las opciones de la línea de comandos para habilitar específicamente determinados pitidos anularán esta configuración.
%OS%
Esta variable contiene el nombre del sistema operativo para poder distinguir entre diferentes sistemas operativos relacionados con DOS de origen Digital Research en trabajos y aplicaciones por lotes. [21] Los valores conocidos incluyen " DOSPLUS" ( DOS Plus 1.2 en emulación de DOS), " CPCDOS 4.1" (DOS Plus 1.2 en emulación CP/M ), " DRDOS" ( DR DOS 3.31 - 6.0 , DR DOS Panther , DR DOS StarTrek , DR-DOS 7.02 [21] - 7.05 ), " EZDOS" ( EZ-DOS 3.41 ), " PALMDOS" y " NetWare PalmDOS" ( PalmDOS 1.0 ), NWDOS" ( Novell DOS 7 ), " NWDOS7" (Novell DOS 7 Beta), " OPENDOS" ( Caldera OpenDOS 7.01 , Caldera DR-OpenDOS 7.02 ), " CDOS" ( DOS concurrente , DOS XM concurrente ), " CPCDOS" ( DOS de PC concurrente ), " CDOS386" ( DOS concurrente 386 ), " DRMDOS" ( DOS multiusuario DR ), " MDOS" ( DOS multiusuario CCI ), [23] " IMSMDOS" ( IMS DOS multiusuario ), " REAL32" ( REAL/32 ). [11] [25] MS-DOS también INTERSVRbusca un valor de " ". [25] Véase también la variable de entorno con el mismo nombre introducida posteriormente en la familia Windows NT .DRDOS%OS%
%PEXEC%
En algunas versiones de DR-DOS esta variable define el comando que ejecuta el $Xtoken del PROMPTcomando antes de COMMAND.COMmostrar el mensaje de aviso después de regresar de la ejecución de un programa externo. [11] [21]
%SWITCHAR%
Esta variable define el SwitChar que se utilizará para el análisis de argumentos por parte de algunos comandos de DR-DOS. Si se define, anula la configuración actual de SwitChar del sistema. Los únicos caracteres aceptados son " /" (estilo DOS), " -" (estilo Unix) y " [" (estilo CP/M). Consulte también la CONFIG.SYSdirectiva relacionada SWITCHAR(para establecer la configuración de SwitChar del sistema) y la %/% variable de información del sistema en algunas ediciones de DR-DOS COMMAND.COM(para recuperar la configuración actual para trabajos por lotes portables).
%TASKMGRWINDIR%
Esta variable especifica el directorio donde se encuentra ubicado el Windows SYSTEM.INI que utilizará el multitarea DR-DOS , anulando el procedimiento predeterminado para localizar el archivo. [11]TASKMGR
%VER%
Esta variable contiene la versión del sistema operativo para poder distinguir entre diferentes versiones de DR-DOS en trabajos por lotes y en la visualización del VERcomando. [21] También se utiliza para el $Vtoken del PROMPTcomando y afecta el valor devuelto por la variable de información del sistema %OS_VERSION% . Los valores conocidos incluyen " 1.0" ( PalmDOS 1.0 ), " 1.2" ( DOS Plus 1.2 en emulación de DOS), " 2.0" ( Concurrent DOS 386 2.0 ), " 3.0" ( Concurrent DOS 386 3.0 ), " 3.31" ( DR DOS 3.31 ) , " 3.32" ( DR DOS 3.32 ), " 3.33" ( DR DOS 3.33 ), " 3.34" ( DR DOS 3.34 ), " " 3.35( DR DOS 3.35 ), " 3.40" ( DR DOS 3.40 ), " 3.41" ( DR DOS 3.41 , EZ-DOS 3.41 ), " 3.41T" ( DR DOS 3.41T ), " 4.1" ( PC DOS concurrente 4.1 ), " 5.0" ( DR DOS 5.0 , DR Multiusuario DOS 5.0 ), " 5.1" ( Novel DR Multiusuario DOS 5.1 ), " 6.0" ( DR DOS concurrente) XM 6.0 , DR DOS 6.0 ), " 6.2" ( DR Concurrent DOS XM 6.2 ), " 7" ( Novel DOS 7 , Caldera OpenDOS 7.01 , DR-DOS 7.02 - 7.05 ), " 7.00" ( CCI Multiusuario DOS 7.00 ), " 7.07" ( DR-DOS 7.07 ), " 7.1" ( IMS Multiusuario DOS 7.1 ), " 7.21" ( CCI Multiusuario DOS 7.21 ), [23] " 7.22" ( CCI Multiusuario DOS 7.22 ), etc. [11] [25] [23]
%YESCHAR%
Esta variable se puede utilizar para definir el carácter que se muestra en algunos comandos en los mensajes de "Sí" en [Y,N]las consultas, anulando así el valor predeterminado actual del sistema (normalmente " Y" en las versiones en inglés de DR-DOS). Si contiene una cadena, solo se tomará el primer carácter, en mayúsculas. Algunos comandos también admiten un parámetro de línea de comandos /Ypara asumir automáticamente "Sí" en las consultas, suprimiendo así dichos mensajes. Sin embargo, si el parámetro /Y:yse utiliza para especificar el carácter "Sí" (anulando así cualquier %YESCHAR%configuración), las consultas no se suprimen. Consulte también la CONFIG.SYSdirectiva relacionada YESCHARy la variable de entorno %NOCHAR%. [22]
%$CLS%
Esta variable define la secuencia de control que se enviará al controlador de la consola para limpiar la pantalla cuando CLSse emita el comando, anulando así el valor predeterminado interno (" ←[2J" en DR-DOS, " ←E" en DOS Plus 1.2 en máquinas Amstrad [19] así como en Concurrent DOS , Multiuser DOS y REAL/32 para terminales VT52 , o " ←+" en Multiuser DOS para terminales ASCII ). [23] Si la variable no está definida y no ANSI.SYSse detecta ningún controlador de consola, el DR-DOS COMMAND.COMlimpiará directamente la pantalla a través de la función INT 10h/AH=00h BIOS , como lo hace MS-DOS/PC DOS COMMAND.COM. Se admite una \nnnnotación especial para números octales para permitir la definición de caracteres especiales como ESC ( ASCII-27 = "←" = 1Bh = 33o), como fe en SET $CLS=\033[2J. Para enviar la barra invertida (" \") en sí, se puede duplicar " \\". [11] [20] [23]
%$DIR%
Con el apoyo de DOS Plus, se aceptan los valores "L" (largo) o "W" (ancho) para cambiar el diseño predeterminado de los listados de directorios con DIR . Se puede anular utilizando las opciones de línea de comandos /Lo /W. [20] [19] Véase también la variable de entorno similar %DIRCMD%y las DIRopciones /Cy /Rde DR-DOS COMMAND.COM. [11]
%$PAGE%
DOS Plus lo admite y acepta los valores " ON" o " OFF" para el control de paginación. Establecerlo en " ON" tiene el mismo efecto que agregarlo /Pa comandos que lo admitan (como DIR o TYPE ). [20] [19]
%$LENGTH%
Utilizado por DOS Plus para definir la longitud de pantalla de la consola en líneas. Esto se utiliza para controlar de forma portátil cuándo se debe detener temporalmente la salida de pantalla hasta que se presione una tecla junto con la /Popción admitida por varios comandos o con paginación automática. [20] [19] Véase también las variables de entorno relacionadas %$WIDTH%y %DIRSIZE%así como la pseudovariable similar %_ROWS%.
%$WIDTH%
Utilizado por DOS Plus para definir el ancho de pantalla de la consola en columnas. Esto se utiliza para controlar de forma portátil el formato de la salida de pantalla de comandos como DIR /Wo TYPE filename. [20] [19] Véase también las variables de entorno relacionadas %$LENGTH%y %DIRSIZE%así como la pseudovariable similar %_COLUMNS%.
%$SLICE%
Utilizado por DOS Plus y que acepta un valor numérico para controlar la división del tiempo de primer plano/fondo de programas multitarea. [20] [19] Véase también el comando DOS Plus SLICE.
%$ON%
Esta variable puede contener una secuencia de control opcional para activar el resaltado, la reversión o la coloración del texto. Se utiliza para enfatizar o controlar de otro modo la visualización de los nombres de archivo en comandos como TYPE wildcard, por ejemplo, SET $ON=\033[1mcon ANSI.SYS cargado o SET $ON=\016para una impresora IBM o ESC/P . Para la \nnnnotación octal especial admitida, consulte %$CLS%. [11] [19] Si bien la variable no está definida de forma predeterminada en DOS Plus y DR-DOS, el valor predeterminado de DOS multiusuario para una terminal ASCII es igual a SET $ON=\033p. [20] [23] Consulte también la variable de entorno relacionada %$OFF%.
%$OFF%
Esta variable puede contener una secuencia de control opcional para desactivar el resaltado, la reversión o la coloración del texto. Se utiliza para volver a la salida normal después de la visualización de los nombres de archivo en comandos como TYPE wildcard, por ejemplo, SET $OFF=\033[0mcon ANSI.SYS cargado o SET $OFF=\024para una impresora IBM o ESC/P . Para la \nnnnotación octal especial admitida, consulte %$CLS%. [11] [19] Si bien la variable no está definida de manera predeterminada en DOS Plus y DR-DOS, el valor predeterminado de DOS multiusuario para una terminal ASCIISET $OFF=\033q es igual a . [20] [23] Consulte también la variable de entorno relacionada %$ON%.
%$HEADER%
Esta variable puede contener una secuencia de control opcional emitida antes de la salida del contenido del archivo en comandos como TYPEen DR-DOS 7.02 y superiores. Se puede utilizar para resaltar, paginar o formatear, por ejemplo, al enviar la salida a una impresora, es decir, para una impresora SET $HEADER=\017IBM o ESC/P\nnn . Para la notación octal especial admitida, consulte %$CLS%. [20] Consulte también la variable de entorno relacionada %$FOOTER%.
%$FOOTER%
Esta variable puede contener una secuencia de control opcional emitida después de la salida del contenido del archivo en comandos como TYPEen DR-DOS 7.02 y superiores. Se utiliza para volver al formato de salida normal, es decir, SET $FOOTER=\022\014en el ejemplo de impresora anterior. Para la notación octal especial \nnncompatible, consulte %$CLS%. [20] Consulte también la variable de entorno relacionada %$HEADER%.

Datalight ROM-DOS también admite una serie de variables de entorno estándar adicionales, entre las que se incluyen:

%DIRSIZE%
Esta variable se utiliza para definir tamaños de pantalla no estándar rows[,cols]para DIRopciones /Py /W(similar a %$LENGTH%y %$WIDTH%bajo DOS Plus). [18]
%NEWFILE%
Esta variable se establece automáticamente en el primer parámetro proporcionado a la directiva CONFIG.SYS NEWFILE . [18]

%TZ%, %COMM%, %SOCKETS%, %HTTP_DIR%, %HOSTNAME%y %FTPDIR%también son utilizados por ROM-DOS. [18]

Sistema operativo/2

%BEGINLIBPATH%
Contiene una lista separada por punto y coma de directorios en los que se buscan archivos DLL antes de los directorios indicados por la %LIBPATH%variable (que se establece durante el inicio del sistema con la directiva especial CONFIG.SYSLIBPATH ). Aquí es posible especificar directorios relativos, incluido " ." para el directorio de trabajo actual. Consulte también la variable de entorno relacionada %ENDLIBPATH%.
%ENDLIBPATH%
una lista de directorios donde se buscarán DLL como %BEGINLIBPATH%, pero se buscará después de la lista de directorios en %LIBPATH%.

Ventanas

Estas variables de entorno se refieren a ubicaciones de recursos críticos del sistema operativo y, como tales, generalmente no dependen del usuario. [26]

%APPDATA%
Contiene la ruta completa al directorio de datos de la aplicación del usuario que inició sesión. No funciona en Windows NT 4.0 SP6 UK.
%LOCALAPPDATA%
Esta variable son los archivos temporales de las aplicaciones . Sus usos incluyen el almacenamiento de temas de escritorio , informes de errores de Windows , almacenamiento en caché y perfiles de navegadores web.
%ComSpec%/%COMSPEC%
La %ComSpec%variable contiene la ruta completa al procesador de comandos; en la familia de sistemas operativos Windows NT, es cmd.exe , mientras que en Windows 9x , %COMSPEC%es COMMAND.COM .
%OS%
La %OS%variable contiene un nombre simbólico de la familia del sistema operativo para distinguir entre diferentes conjuntos de características en los trabajos por lotes . Se parece a una variable de entorno con el mismo nombre %OS%que se encuentra en todos los sistemas operativos relacionados con DOS de origen Digital Research como Concurrent DOS, Multiuser DOS , REAL/32, DOS Plus , DR DOS , Novell DOS y OpenDOS. %OS%siempre contiene la cadena " Windows_NT" en la familia Windows NT . [27]
%PATH%
Esta variable contiene una lista de directorios delimitada por punto y coma (no coloque espacios entre ellos) en la que el intérprete de comandos buscará un archivo ejecutable que coincida con el comando dado. Las variables de entorno que representan rutas pueden estar anidadas dentro de la %PATH%variable, pero solo en un nivel de indirección. Si esta variable de entorno de subruta contiene una variable de entorno que representa una ruta, %PATH%no se expandirá correctamente en la sustitución de la variable. Equivalente a la variable Unix . $PATH
%PROCESSOR_ARCHITECTURE%, %PROCESSOR_ARCHITEW6432%, %PROCESSOR_IDENTIFIER%, %PROCESSOR_LEVEL%,%PROCESSOR_REVISION%
Estas variables contienen detalles de la CPU ; se configuran durante la instalación del sistema.
%PUBLIC%
La %PUBLIC%variable (introducida con Vista) apunta al directorio de perfil de usuario público (pseudo) " C:\Users\Public".
%ProgramFiles%, %ProgramFiles(x86)%,%ProgramW6432%
La %ProgramFiles%variable apunta al directorio Archivos de programa , que almacena todos los programas instalados de Windows y otros. El valor predeterminado en los sistemas en idioma inglés es " C:\Program Files". En las ediciones de 64 bits de Windows (XP, 2003, Vista), también hay %ProgramFiles(x86)%, que tiene como valor predeterminado " C:\Program Files (x86)", y %ProgramW6432%, que tiene como valor predeterminado " C:\Program Files". La %ProgramFiles%variable en sí depende de si el proceso que solicita la variable de entorno es de 32 bits o de 64 bits (esto se debe a la redirección de 64 bits de Windows sobre Windows [28] ).
%CommonProgramFiles%, %CommonProgramFiles(x86)%,%CommonProgramW6432%
Esta variable apunta al subdirectorio Archivos comunes del directorio Archivos de programa . El valor predeterminado en los sistemas en idioma inglés es " C:\Program Files\Common Files". En las ediciones de 64 bits de Windows (XP, 2003, Vista), también hay %ProgramFiles(x86)%, cuyo valor predeterminado es " C:\Program Files (x86)", y %ProgramW6432%, cuyo valor predeterminado es " C:\Program Files". La %ProgramFiles%variable en sí depende de si el proceso que solicita la variable de entorno es de 32 bits o de 64 bits (esto se debe a la redirección de 64 bits de Windows sobre Windows ).
%OneDrive%
La %OneDrive%variable es una variable de entorno especial para todo el sistema que se encuentra en Windows NT y sus derivados. Su valor es la ruta donde se encuentra (si está instalado y configurado) el directorio de OneDrive. El valor de %OneDrive%es en la mayoría de los casos " C:\Users\{Username}\OneDrive\".
%SystemDrive%
La %SystemDrive%variable es una variable de entorno especial para todo el sistema que se encuentra en Windows NT y sus derivados. Su valor es la unidad en la que se colocó el directorio del sistema. El valor de %SystemDrive%es en la mayoría de los casos " C:".
%SystemRoot%
La %SystemRoot%variable es una variable de entorno especial para todo el sistema que se encuentra en la familia de sistemas operativos Windows NT. Su valor es la ubicación del directorio del sistema, incluida la unidad y la ruta. La unidad es la misma que la del sistema operativo %SystemDrive%y la ruta predeterminada en una instalación limpia depende de la versión del sistema operativo. De forma predeterminada:
%windir%
Esta variable apunta al directorio de Windows . (En la familia de sistemas operativos Windows NT, es idéntica a la %SystemRoot%variable ). Windows 95 – 98 y Windows ME se instalan, de forma predeterminada, en " C:\Windows". Para otras versiones de Windows, consulte la %SystemRoot%entrada anterior.

Las variables de gestión de usuarios [ cita requerida ] almacenan información relacionada con los recursos y las configuraciones que poseen los distintos perfiles de usuario dentro del sistema. Como regla general, estas variables no hacen referencia a recursos críticos del sistema ni a ubicaciones que sean necesarias para que el sistema operativo se ejecute.

%ALLUSERSPROFILE%( %PROGRAMDATA%desde Windows Vista)
Esta variable se expande a la ruta completa al directorio del perfil Todos los usuarios . Este perfil contiene recursos y configuraciones que utilizan todas las cuentas del sistema. Los enlaces de acceso directo copiados a los directorios del menú Inicio o del Escritorio de Todos los usuarios aparecerán en el menú Inicio o el Escritorio de cada usuario , respectivamente.
%USERDOMAIN%
El nombre del grupo de trabajo o dominio de Windows al que pertenece el usuario actual. La variable relacionada, %LOGONSERVER%, contiene el nombre de host del servidor que autenticó las credenciales de inicio de sesión del usuario actual (nombre y contraseña). En el caso de los equipos domésticos y los equipos de un grupo de trabajo, el servidor de autenticación suele ser el propio equipo. En el caso de los equipos de un dominio de Windows, el servidor de autenticación es un controlador de dominio (un controlador de dominio principal o PDC, en los dominios basados ​​en Windows NT 4).
%USERPROFILE%
Variable de entorno especial de todo el sistema que se encuentra en Windows NT y sus derivados. Su valor es la ubicación del directorio de perfil del usuario actual, en el que se encuentra el subárbol de registro HKCU de ese usuario ( NTUSER). Los usuarios también pueden utilizar la %USERNAME%variable para determinar la identificación de inicio de sesión de los usuarios activos.

Las variables de sistema opcionales [ cita requerida ] no se especifican explícitamente de manera predeterminada, pero se pueden usar para modificar el comportamiento predeterminado de ciertos comandos de consola integrados. Estas variables tampoco necesitan especificarse explícitamente como argumentos de la línea de comandos.

Valores predeterminados

Las siguientes tablas muestran valores predeterminados típicos de ciertas variables de entorno en versiones en inglés de Windows tal como se pueden recuperar en CMD.

(Algunas de estas variables también se definen cuando se ejecutan COMMAND.COMen Windows, pero difieren en ciertos detalles importantes: en COMMAND.COM, los nombres de las variables de entorno siempre están en mayúsculas. Algunas, pero no todas las variables, contienen nombres de archivo cortos 8.3 en lugar de largos . Si bien faltan algunas variables presentes en el CMDentorno, también hay algunas variables específicas del COMMANDentorno).

En esta lista, no hay ninguna variable de entorno que haga referencia a la ubicación del directorio Mis documentos del usuario , por lo que no existe un método estándar para configurar el directorio de inicio de un programa como el directorio Mis documentos .

Variables pseudoambientales

Los procesadores de comandos de DOS y Windows también admiten variables de pseudoentorno. Se trata de valores que se obtienen como variables de entorno, pero que en realidad no se almacenan en el entorno, sino que se calculan cuando se solicitan.

Dos

Además de las variables de entorno reales, que se almacenan estáticamente en el entorno hasta que se modifican o eliminan, existen varias variables de entorno pseudo-ambientales para el procesamiento por lotes.

Los llamados parámetros de reemplazo o parámetros reemplazables (terminología de Microsoft/IBM) también conocidos como variables de reemplazo (terminología de Digital Research/Novell/Caldera) [21] o parámetros de archivo por lotes (terminología de JP Software) [10] %1 ... %9se %0pueden utilizar para recuperar los parámetros de llamada de un trabajo por lotes, consulte SHIFT. En los trabajos por lotes, se pueden recuperar al igual que las variables de entorno, pero en realidad no se almacenan en el entorno.

Algunos procesadores de línea de comandos (como DR-DOS COMMAND.COM , [21] Multiuser DOS MDOS.COM / TMP.EXE(Terminal Message Process), JP Software 4DOS , 4OS2 , 4NT , Take Command y Windows cmd.exe ) admiten un tipo de variables de pseudoentorno llamadas variables de información del sistema (terminología de Novell / Caldera) [21] o variables internas (terminología de JP Software), [10] que se pueden usar para recuperar información variada, posiblemente dinámica, pero de solo lectura sobre el sistema en ejecución en trabajos por lotes. Los valores devueltos representan el estado del sistema en el momento en que se consultan estas variables; es decir, leerlas varias veces seguidas puede devolver valores diferentes incluso dentro del mismo comando; consultarlas no tiene un efecto directo en el sistema. Dado que no se almacenan en el entorno, no se enumeran por SET y no existen para que los recuperen programas externos. Si se define una variable de entorno verdadera del mismo nombre, tiene prioridad sobre la variable correspondiente hasta que la variable de entorno se elimine nuevamente. No distinguen entre mayúsculas y minúsculas. Si bien casi todas estas variables tienen como prefijo un guión bajo (" _") en 4DOS, etc., por convención (fe %_SECOND%), [10] no lo tienen en DR-DOS COMMAND.COM(fe %OS_VERSION%).

Además, 4DOS, 4OS2, 4NT y Take Command también admiten las llamadas funciones variables [10] , incluidas las definibles por el usuario. Funcionan igual que las variables internas , pero pueden aceptar parámetros opcionales (fe %@EVAL[]%) e incluso pueden cambiar el estado del sistema según su función.

Variables de información del sistema compatibles con DR-DOS COMMAND.COM:

%AM_PM%
Esta pseudovariable devuelve el estado anterior o posterior al mediodía de la hora actual. La cadena devuelta depende de la versión específica de configuración regional de DR-DOS, por ejemplo, " am" o " " en la versión en inglés. Se parece a una variable de identificadorpm con el mismo nombre en los scripts de inicio de sesión de Novell NetWare .
%DAY%
Esta pseudovariable devuelve los días de la fecha actual en un formato de 2 dígitos con ceros a la izquierda, por ejemplo, " 01".." 31". Consulte también la pseudovariable similar %_DAY%. Se parece a una variable de identificador con el mismo nombre en los scripts de inicio de sesión de Novell NetWare .
%DAY_OF_WEEK%
Esta pseudovariable devuelve el nombre del día de la semana en un formato de 3 caracteres. La cadena devuelta depende de la versión específica de configuración regional de DR-DOS, p. ej., " Sun", " Mon" Tue, " Wed", " Thu", " Fri", o " Sat" en la versión en inglés. Se parece a una variable de identificador con el mismo nombre en los scripts de inicio de sesión de Novell NetWare .
%ERRORLEVEL%
En COMMAND.COMDR-DOS 7.02 y versiones superiores, esta pseudovariable devuelve el último nivel de error devuelto por un programa externo o el RETURNcomando, p. ej., " 0".." 255". [30] [31] Consulte también la pseudovariable con el mismo nombre %ERRORLEVEL%en Windows y el IF ERRORLEVELcomando condicional.
%ERRORLVL%
En DR-DOS 7.02 y superior, esta pseudovariable devuelve el último nivel de error en un formato de 3 dígitos con ceros a la izquierda, p. ej., " 000".." 255". [30] [31] En DOS multiusuario , esta es una verdadera variable de entorno que el shell actualiza automáticamente con el código de retorno de los programas que salen. [23] Consulte también la pseudovariable relacionada %ERRORLEVEL%en DR-DOS y el IF ERRORLEVELcomando.
%GREETING_TIME%
Esta pseudovariable devuelve la hora del saludo diario de tres niveles. La cadena devuelta depende de la versión específica de configuración regional de DR-DOS, por ejemplo, " morning", " afternoon" o " " en la versión en inglés. Se parece a una variable de identificadorevening con el mismo nombre en los scripts de inicio de sesión de Novell NetWare .
%HOUR%
Esta pseudovariable devuelve las horas del momento actual en formato de 12 horas sin ceros a la izquierda, por ejemplo, " 1".." 12". Se parece a una variable de identificador con el mismo nombre en los scripts de inicio de sesión de Novell NetWare .
%HOUR24%
Esta pseudovariable devuelve las horas del tiempo actual en formato de 24 horas en un formato de 2 dígitos con ceros a la izquierda, por ejemplo, " " 00.." 23". Se parece a una variable de identificador con el mismo nombre en los scripts de inicio de sesión de Novell NetWare . Consulte también la pseudovariable similar %_HOUR%.
%MINUTE%
Esta pseudovariable devuelve los minutos de la hora actual en un formato de 2 dígitos con ceros a la izquierda, por ejemplo, " 00".." 59". Se parece a una variable de identificador con el mismo nombre en los scripts de inicio de sesión de Novell NetWare . Consulte también la pseudovariable similar %_MINUTE%.
%MONTH%
Esta pseudovariable devuelve los meses de la fecha actual en un formato de 2 dígitos con ceros a la izquierda, por ejemplo, " 01".." 12". Se parece a una variable de identificador con el mismo nombre en los scripts de inicio de sesión de Novell NetWare . Consulte también la pseudovariable similar %_MONTH%.
%MONTH_NAME%
Esta pseudovariable devuelve el nombre del mes de la fecha actual. La cadena devuelta depende de la versión específica de configuración regional de DR-DOS, p. ej., " January" February, " " March, " April" May, " ", " June", July" " , " " August, " September" October, o " " en la versión en inglés. Se parece a una variable de identificadorDecember con el mismo nombre en los scripts de inicio de sesión de Novell NetWare .
%NDAY_OF_WEEK%
Esta pseudovariable devuelve el número del día de la semana actual, por ejemplo, " 1".." 7" (con " 1" para el domingo). Se parece a una variable de identificador con el mismo nombre en los scripts de inicio de sesión de Novell NetWare .
%OS_VERSION%
Esta pseudovariable devuelve la versión del sistema operativo en función de la configuración actual de la variable de entorno %VER%. Si %VER%no está definida, %OS_VERSION%devuelve " off". Se parece a una variable de identificador con el mismo nombre en los scripts de inicio de sesión de Novell NetWare , que puede devolver versiones también para versiones de DOS que no sean DR-DOS.
%SECOND%
Esta pseudovariable devuelve los segundos de la hora actual en un formato de 2 dígitos con ceros a la izquierda, por ejemplo, " 00".." 59". Se parece a una variable de identificador con el mismo nombre en los scripts de inicio de sesión de Novell NetWare . Consulte también la pseudovariable similar %_SECOND%.
%SHORT_YEAR%
Esta pseudovariable devuelve el año de la fecha actual en un formato de 2 dígitos con ceros a la izquierda, por ejemplo, " 93".." 99", " 00".." 92". Se parece a una variable de identificador con el mismo nombre en los scripts de inicio de sesión de Novell NetWare .
%YEAR%y%_YEAR%
Compatible desde Novell DOS 7 , la %YEAR%pseudovariable devuelve el año de la fecha actual en un formato de 4 dígitos, p. ej., " 1980".." 2099". Se parece a una variable de identificador con el mismo nombre en los scripts de inicio de sesión de Novell NetWare . DR-DOS 7.02 y versiones posteriores se agregaron %_YEAR%para compatibilidad con 4DOS , devolviendo el mismo valor. [10]
%/%
En COMMAND.COMDR-DOS 7.02 y versiones posteriores, esta pseudovariable devuelve la configuración actual de SwitChar del sistema, ya sea " /" (estilo DOS) o " -" (estilo Unix). [32] [33]CONFIG.SYS Consulte también la directiva relacionada SWITCHAR y la variable de entorno %SWITCHAR%.
%_CODEPAGE%
Esta pseudovariable devuelve la página de códigos actual del sistema (" 1".." 65533"), por ejemplo " 437", " 850", " 858". Esta variable fue introducida originalmente por 4DOS , [10] pero también estuvo disponible COMMAND.COMdesde DR-DOS 7.02. Vea también el CHCPcomando.
%_COLUMNS%
Esta pseudovariable devuelve el número actual de columnas de la pantalla en función del modo de visualización, p. ej. 40, " ", " 80", " 132", etc. Esta variable fue introducida originalmente por 4DOS , [10] pero también se hizo disponible COMMAND.COMa partir de DR-DOS 7.02. Consulte también una variable de entorno similar %$WIDTH%en DOS Plus.
%_COUNTRY%
Esta pseudovariable devuelve el código de país actual del sistema (" 1".." 65534"), p. ej. " 1" para EE. UU., " 44" para el Reino Unido, " 49" para Alemania, " 20049" con ISO 8601 , " 21049" con ISO 8601 y compatibilidad con Europa . [33] [34] Esta variable fue introducida originalmente por 4DOS , [10] pero también estuvo disponible COMMAND.COMdesde DR-DOS 7.02. Consulte también la CONFIG.SYSdirectiva COUNTRY.
%_DAY%
Esta pseudovariable devuelve los días de la fecha actual sin ceros a la izquierda, p. ej. " 1".. 31" Esta variable fue introducida originalmente por 4DOS , [10] pero también se hizo disponible COMMAND.COMa partir de DR-DOS 7.02. Véase también la pseudovariable similar %DAY%.
%_HOUR%
Esta pseudovariable devuelve las horas del momento actual en formato de 24 horas sin ceros a la izquierda, p. ej. " 0".. 23" Esta variable fue introducida originalmente por 4DOS , [10] pero también se hizo disponible COMMAND.COMa partir de DR-DOS 7.02. Véase también la pseudovariable similar %HOUR24%.
%_MINUTE%
Esta pseudovariable devuelve los minutos de la hora actual sin ceros a la izquierda, p. ej. " 0".. 59" Esta variable fue introducida originalmente por 4DOS , [10] pero también se hizo disponible COMMAND.COMa partir de DR-DOS 7.02. Véase también la pseudovariable similar %MINUTE%.
%_MONTH%
Esta pseudovariable devuelve los meses de la fecha actual sin ceros a la izquierda, p. ej. " 1".. 12" Esta variable fue introducida originalmente por 4DOS , [10] pero también se hizo disponible COMMAND.COMa partir de DR-DOS 7.02. Véase también la pseudovariable similar %MONTH%.
%_ROWS%
Esta pseudovariable devuelve el número actual de filas de la pantalla en función del modo de visualización, p. ej. 25, " ", " 43", " 50", etc. Esta variable fue introducida originalmente por 4DOS , [10] pero también se hizo disponible COMMAND.COMa partir de DR-DOS 7.02. Consulte una variable de entorno similar %$LENGTH%en DOS Plus.
%_SECOND%
Esta pseudovariable devuelve los segundos de la hora actual sin ceros a la izquierda, p. ej. " 0".. 59" Esta variable fue introducida originalmente por 4DOS , [10] pero también se hizo disponible COMMAND.COMa partir de DR-DOS 7.02. Véase también la pseudovariable similar %SECOND%.

Variables de información del sistema compatibles con DR-DOS COMMAND.COMcon la red cargada:

%LOGIN_NAME%
Esta pseudovariable devuelve el nombre de usuario. Esto siempre funcionó con NETX, pero también funcionará con ODI / VLM de Personal NetWare si la unidad actual es una unidad asignada a PNW (de lo contrario, se devuelve una cadena vacía). Consulte también la variable de entorno con nombre similar .%LOGINNAME%
%P_STATION%
Esta pseudovariable devuelve el número de estación física en formato " ????????????". El valor depende de la dirección MAC del adaptador de red, pero se puede anular. Se parece a una variable de identificador con el mismo nombre en los scripts de inicio de sesión de Novell NetWare .
%STATION%
Esta pseudovariable devuelve el número de estación lógica que comienza con " 1" para el primer cliente. Los números son asignados por el servidor de archivos y permanecen estáticos mientras la conexión IPX permanezca establecida. Se parece a una variable de identificador con el mismo nombre en los scripts de inicio de sesión de Novell NetWare .
%FULL_NAME%
Esta pseudovariable devuelve el nombre completo del usuario conectado, si está disponible. Se parece a una variable de identificador con el mismo nombre en los scripts de inicio de sesión de Novell NetWare . Consulte también la pseudovariable relacionada %LOGIN_NAME%.

Ventanas

Las variables de entorno dinámicas (también llamadas variables internas o variables de información del sistema en DOS) son variables de entorno pseudocompatibles CMD.EXEcuando se habilitan las extensiones de línea de comandos y se expanden a varios valores discretos cuando se las consulta, es decir, sus valores pueden cambiar cuando se las consulta varias veces incluso dentro del mismo comando. Si bien se pueden usar en trabajos por lotes y en el indicador, no se almacenan en el entorno. En consecuencia, no se enumeran SETni existen para que los lean programas externos. No distinguen entre mayúsculas y minúsculas.

Indirectamente, también son compatibles con Windows COMMAND.COM, que ha sido modificado para llamar internamente CMD.EXEpara ejecutar los comandos.

%CD%
Esta pseudovariable se expande al directorio actual equivalente a la salida del comando CDcuando se llama sin argumentos. Si bien se puede devolver un nombre de archivo largo en CMD.EXEfunción del directorio actual, el hecho de que el directorio actual siempre esté en formato 8.3COMMAND.COM en hará que devuelva un nombre de archivo corto en COMMAND.COM, incluso cuando COMMANDse llama internamente a CMD.
%CMDCMDLINE%
Esta pseudovariable se expande a los parámetros de inicio originales de CMD.EXE, por ejemplo " C:\Windows\system32\cmd.exe". En Windows COMMAND.COM, esto puede devolver algo como " C:\Windows\system32\cmd.exe /c ..." debido al hecho de que COMMAND.COMlas llamadas se realizan CMD.EXEinternamente.
%CMDEXTVERSION%
Esta pseudovariable se expande a la versión de las extensiones de línea de comandos de CMD.EXE, si está habilitada (por ejemplo, " 1" en Windows NT , " 2" en Windows 2000 y Windows XP ).
%DATE%
Esta pseudovariable se expande hasta la fecha actual. La fecha se muestra según las preferencias de formato de fecha del usuario actual .
%ERRORLEVEL%
Esta pseudovariable se expande hasta el último nivel de error establecido, un valor entre " 0" y " 255" (sin ceros a la izquierda). [30] [35] [31] Los comandos externos y algunos comandos internos establecen niveles de error al ejecutarse. Consulte también la pseudovariable con el mismo nombre %ERRORLEVEL%en DR-DOS y el IF ERRORLEVELcomando.
%HIGHESTNUMANODENUMBER%
Esta pseudovariable devuelve el número del nodo NUMA más alto .
%RANDOM%
Esta pseudovariable devuelve un número aleatorio entre " 0" y " 32767".
%TIME%
Esta pseudovariable devuelve la hora actual. La hora se muestra según las preferencias de formato de hora del usuario actual. Si se utilizan las variables %TIME%y %DATE%, es importante leerlas en este orden particular y en rápida sucesión para evitar problemas de cambio de hora a medianoche.

Otras conchas

Los shells similares a Unix tienen variables generadas dinámicamente similares, siendo bash $RANDOMun ejemplo bien conocido. Sin embargo, dado que estos shells tienen un concepto de variables locales, se describen como variables locales especiales. [36]

Véase también

Notas

  1. ^ Las aplicaciones que no manejan adecuadamente variables de entorno de más de 128 caracteres incluyen CadStar PCB , Checkit, Computer Select CD-ROM, RenderMan, VINES Network , Windows 3.0 y Word para Windows 6.0 .
  2. ^ 4DOS y MS-DOS 7.0 establecen la longitud en 127 e insertan ASCII-13 en esta posición, pero las bibliotecas de Borland establecen la longitud en el valor no válido de 128 y no insertan un ASCII-13. Para líneas de comando más cortas, 4DOS/ NDOS y DR-DOS también insertan un ASCII-0 después del ASCII-13, pero no cuando se invoca mediante la directiva INSTALL ; MS-DOS no lo hace.

Referencias

  1. ^ Robbins, Arnold; Beebe, Nelson HF (mayo de 2005). Apandi, Tatiana; Randal, Allison; Witwer, Adam (eds.). Classic Shell Scripting (1.ª edición). O'Reilly . ISBN 978-0-596-00595-5.
  2. ^ "unset - valores y atributos de variables y funciones no definidos - ". Referencia de comandos y utilidades, La especificación única de UNIX - Especificaciones base de The Open Group, IEEE Std 1003.1-2008 (edición número 7). The IEEE y The Open Group . 2016 [2001]. Archivado desde el original el 18 de diciembre de 2017. Consultado el 18 de diciembre de 2017 .
  3. ^ fgrose (31 de julio de 2015) [2011]. "El comando incorporado unset". Bash Hackers Wiki . Archivado desde el original el 18 de diciembre de 2017. Consultado el 18 de diciembre de 2017 .
  4. ^ Jacobs, Mike; Koren, Alexander; Satran, Michael (14 de noviembre de 2017). "Almacenar y recuperar configuraciones y otros datos de aplicaciones". Microsoft . Archivado desde el original el 18 de diciembre de 2017 . Consultado el 18 de diciembre de 2017 .
  5. ^ Raymond, Eric (2002-08-02) [Publicado originalmente en 2001]. "El proyecto BROWSER". Archivado desde el original el 2019-09-21 . Consultado el 2020-10-21 .
  6. ^ "LWN - Desarrollo". LWN.net . 2001-02-01. Archivado desde el original el 2019-02-08 . Consultado el 2020-10-21 . Estandarización de una variable de entorno BROWSER. Eric Raymond está promoviendo el uso de una nueva variable de entorno, BROWSER, para complementar las variables PAGER, MAILER y EDITOR existentes. Este esfuerzo se está probando como un experimento de piratería de sistemas sociales.
  7. ^ Špaček, Michal (19 de enero de 2020) [Primera versión publicada en 2013]. "Env::Browser-0.06". metacpan.org . Archivado desde el original el 21 de octubre de 2020 . Consultado el 21 de octubre de 2020 . Env::Browser - Procesar la variable de entorno $BROWSER y ejecutar el navegador web
  8. ^ "webbrowser — Un práctico controlador de navegador web". docs.python.org . Archivado desde el original el 2020-10-13 . Consultado el 2020-10-21 .
  9. ^ "DefaultWebBrowser - Wiki de Debian". wiki.debian.org . 2020-06-10. Archivado desde el original el 2020-10-21 . Consultado el 2020-10-21 . La variable de entorno BROWSER se puede configurar para que siempre elija el navegador que desee.
  10. ^ abcdefghijklmnopqrstu vwxyz aa ab Brothers, Hardin; Rawson, Tom ; Conn, Rex C .; Paul, Matthias R.; Dye, Charles E.; Georgiev, Luchezar I. (27 de febrero de 2002). Ayuda en línea de 4DOS 8.00 .
  11. ^ abcdefghijklmnopqr Paul, Matthias R. (30 de julio de 1997) [1 de mayo de 1994]. NWDOS-TIP: consejos y trucos para Novell DOS 7, con un clic para deshacer detalles, errores y soluciones. Versión 157 (en alemán) (3 ed.). Archivado desde el original el 4 de noviembre de 2016 . Consultado el 6 de agosto de 2014 . {{cite book}}: |work=ignorado ( ayuda ) (NB. NWDOSTIP.TXT es un trabajo exhaustivo sobre Novell DOS 7 y OpenDOS 7.01 , que incluye la descripción de muchas características y componentes internos no documentados. El enlace proporcionado apunta a una versión convertida a HTML del archivo, que es parte de la MPDOSTIP.ZIPcolección). [1]
  12. ^ abcde Paul, Matthias R. (1 de mayo de 1997) [1 de marzo de 1995]. "Hinweise zu JPSofts 4DOS 5.5b/c, 5.51, 5.52a y NDOS". MPDOSTIP (en alemán). Archivado desde el original el 4 de noviembre de 2016 . Consultado el 8 de mayo de 2015 .(NB: El enlace proporcionado apunta a una versión convertida a HTML del 4DOS5TIP.TXTarchivo, que es parte de la MPDOSTIP.ZIPcolección). [2]
  13. ^ ab Paul, Matthias R. (2 de octubre de 1997). "Caldera OpenDOS 7.01/7.02 Update Alpha 3 IBMBIO.COM README.TXT". Archivado desde el original el 4 de octubre de 2003. Consultado el 29 de marzo de 2009 .[3]
  14. ^ Paul, Matthias R. (1997-05-27) [1996]. «SETENV v1.11». Archivado desde el original el 2009-02-15 . Consultado el 2019-08-09 . […] SETENV […] para ocultar y restaurar posteriormente el […] entorno previo […] Al usar SETENV.COM puede ahorrar algunos KiloBytes de memoria DOS poco común […] dependiendo de la cantidad de controladores cargados por INSTALL= / INSTALLHIGH= / HIINSTALL= y el tamaño actual del entorno previo. […] esta característica original […] no se puede encontrar en ningún administrador/optimizador de memoria conocido. […]
  15. ^ Paul, Matthias R. (6 de abril de 2002). "Re: [fd-dev] ANUNCIO: CuteMouse 2.0 alpha 1". freedos-dev . Archivado desde el original el 7 de febrero de 2020 . Consultado el 7 de febrero de 2020 . […] En la rutina prepareTSR de CTMOUSE.ASM encontré un comentario con respecto al entorno cero. […] ¿DESQview o entorno cero de DRDOS ? […] bloque de entorno de lanzamiento […] omitir si hay algún problema […] relleno cero para utilidades de estilo MEM […]
  16. ^ "Manual del usuario de PTS-DOS 2000 Pro" (PDF) . Archivado (PDF) del original el 2018-05-12 . Consultado el 2018-05-12 .
  17. ^ Paul, Matthias R. (7 de octubre de 2002). "Re: Ejecutar un archivo COM". Grupo de noticias : alt.msdos.programmer. Archivado desde el original el 3 de septiembre de 2017. Consultado el 3 de septiembre de 2017 .[4]
  18. ^ abcdef Datalight, Inc. ; GPvNO (abril de 2005) [1999]. "Guía del usuario de ROM-DOS de Datalight" (PDF) . Datalight, Inc. 3010-0200-0716. Archivado (PDF) desde el original el 20 de marzo de 2019 . Consultado el 16 de septiembre de 2018 .
  19. ^ abcdefghi Kotulla, Martin (noviembre de 1987). "Von CP/M zu MS-DOS, Teil 11" (PDF) . Informática profesional (PC) - Schneider International (en alemán). 3 (11): 100–103. Archivado (PDF) desde el original el 24 de abril de 2019. Consultado el 20 de mayo de 2018 .
  20. ^ abcdefghijklmn Paul, Matthias R. (26 de marzo de 2002). "CLS actualizado publicado". Lista de correo freedos-dev. Archivado desde el original el 4 de octubre de 2018. Consultado el 6 de agosto de 2014 .
  21. ^ Guía del usuario de abcdefgh Caldera DR-DOS 7.02. Caldera, Inc. 1998 [1993, 1997]. Archivado desde el original el 4 de noviembre de 2016 . Consultado el 10 de agosto de 2013 .
  22. ^ abcd Paul, Matthias R. (14 de agosto de 2017) [7 de agosto de 2017]. "La saga continua de Windows 3.1 en modo mejorado en OmniBook 300". MoHPC - el Museo de las Calculadoras HP . Archivado desde el original el 1 de mayo de 2018. Consultado el 1 de mayo de 2018. […] set DRSYS=ON (opcional para indicarle a SYS que está al tanto del hecho de que lo está ejecutando en un entorno ajeno y desea continuar de todos modos sin tener que confirmar individualmente algunas advertencias y pantallas de información adicional que se muestran en este escenario de otra manera) […]
  23. ^ abcdefghi Documentación en línea de CCI Multiuser DOS 7.22 GOLD . Concurrent Controls, Inc. (CCI). 10 de febrero de 1997. HELP.HLP.
  24. ^ Guía de instalación de CCI Multiuser DOS 7.22 GOLD . Concurrent Controls, Inc. (CCI). 10 de febrero de 1997. PRINTDOC.HLP.
  25. ^ abc Paul, Matthias R. (2002-02-20). "¿Cómo detectar FreeCOM/FreeDOS en lotes?". Lista de correo freedos-dev. Archivado desde el original el 2018-11-06 . Consultado el 2014-08-06 .
  26. ^ "Variables de entorno reconocidas - Implementación de Windows". 2024-01-09.
  27. ^ Brink, Shawn (17 de noviembre de 2018). "Variables de entorno en Windows 10: lista completa de variables de entorno en Windows 10". Foros de Windows Ten . Archivado desde el original el 27 de marzo de 2019. Consultado el 24 de abril de 2019 .
  28. ^ "Detalles de implementación de WOW64".
  29. ^ abcdefghijklmnopqrstu vwxyz aa ab ac ad ae af ag ah ai aj ak Schulz, Hajo (2 de octubre de 2014). "Ordner für spezielle Fälle — Die "benannten Ordner" in Windows aus User- und Entwicklersicht" [Carpetas de propósito especial: las "carpetas con nombre" de Windows desde la perspectiva del usuario y del desarrollador]. c't - magazin für computertechnik (en alemán). 2014 (22). Heise Verlag : 180–184. Archivado desde el original el 9 de julio de 2016 . Consultado el 8 de abril de 2019 .
  30. ^ abc Paul, Matthias R. (1 de mayo de 1997) [1 de octubre de 1993]. BATTIPs: consejos y trucos para Programmierung von Batchjobs (en alemán). 7: ERRORLEVEL aparece. Archivado desde el original el 23 de agosto de 2017 . Consultado el 23 de agosto de 2017 . {{cite book}}: |work=ignorado ( ayuda ) [5] [6] Archivado el 11 de septiembre de 2017 en archive.today (NB. BATTIPS.TXT es parte de MPDOSTIP.ZIP. El enlace provisto apunta a una versión anterior convertida a HTML del archivo BATTIPS.TXT). [7]
  31. ^ abc Auer, Eric; Paul, Matthias R.; Hall, Jim (24 de diciembre de 2015) [31 de diciembre de 2003]. "Niveles de error de MS-DOS". Archivado desde el original el 24 de diciembre de 2015.
  32. ^ Paul, Matthias R. (9 de enero de 1998). DELTREE.BAT R1.01 Eliminación extendida de archivos y directorios. Caldera, Inc. Archivado desde el original el 8 de abril de 2019. Consultado el 8 de abril de 2019 .
  33. ^ ab DR-DOS 7.03 WHATSNEW.TXT — Cambios de DR-DOS 7.02 a DR-DOS 7.03. Caldera, Inc. 1998-12-24. Archivado desde el original el 2019-04-08 . Consultado el 2019-04-08 .
  34. ^ Paul, Matthias R. (10 de junio de 2001) [1995]. «Formato de archivo DOS COUNTRY.SYS» (archivo COUNTRY.LST) (1.44.ª ed.). Archivado desde el original el 20 de abril de 2016. Consultado el 20 de agosto de 2016 .
  35. ^ Allen, William; Allen, Linda. "Niveles de error de Windows 95/98/ME". Archivado desde el original el 7 de julio de 2011.
  36. ^ "Variables del shell". Manual de referencia de Bash .

Lectura adicional

Enlaces externos