stringtranslate.com

Variable ambiental

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 directorios propiedad del 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 tipos y variantes de sistemas operativos Unix a partir de ese momento, incluidos Linux y macOS . Desde PC DOS 2.0 en 1982, todos los sistemas operativos posteriores de Microsoft , incluidos Microsoft Windows y OS/2, también los han incluido como característica, aunque con sintaxis, uso y nombres de variables estándar algo diferentes.

Diseño

En todos los sistemas Unix y similares , así como en Windows, cada proceso tiene su propio conjunto separado de variables de entorno . De forma predeterminada, cuando se crea un proceso, hereda un entorno de ejecución duplicado de su proceso principal, excepto por los cambios explícitos realizados por el padre cuando crea al hijo. A nivel de API , estos cambios se deben realizar entre la ejecución forky exec. Alternativamente, desde shells de comandos como bash , un usuario puede cambiar las variables de entorno para una invocación de comando particular invocándola indirectamente a través de envla notación o usandola ENVIRONMENT_VARIABLE=VALUE <command>. Un programa en ejecución puede acceder a los valores de las variables de entorno con 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 cambia 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 mientras dure 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 y, por lo tanto, las heredan todos los demás procesos del sistema. Los usuarios pueden, y a menudo lo hacen, aumentarlos 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 establece en el archivo.AUTOEXEC.BAT

En Unix , a un programa setuid se le asigna un entorno elegido por quien lo llama, pero se ejecuta con una autoridad diferente a la de quien lo llama. El vinculador dinámico generalmente cargará código desde 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 quien lo llama podría hacer que ejecute código arbitrario y, por lo tanto, hacer un mal uso de su autoridad. Por esta razón, libc desactiva estas variables de entorno al inicio de un proceso setuid. Los programas setuid generalmente desarman variables de entorno desconocidas y verifican 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 cualquiera de las cadenas difiere entre los sistemas. Cuando es necesario representar estructuras de datos como listas, es común utilizar una lista delineada con dos puntos (común en Unix y similar a Unix) o punto y coma (común en Windows y DOS).

Sintaxis

Las variables se pueden utilizar tanto en scripts como en la línea de comando . Por lo general, se hace referencia a ellos colocando símbolos especiales delante o alrededor del nombre de la variable.

Es convencional que los nombres de las variables de entorno se elijan en mayúsculas. En general, en el código de programación, 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 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 a Unix , 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 

Si xyzes necesario agregarlo al valor de la HOMEvariable, se podría escribir:

eco ${ INICIO } xyz 

En Unix y sistemas 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 dándole 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 su API , no se distinguen mayúsculas o 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 de inicio y la ruta, el usuario puede escribir esto:

ECO  %HOMEDRIVE%%HOMEPATH%

El comando SET(sin argumentos) muestra todas las variables de entorno y sus valores. setTambién se puede utilizar para imprimir todas las variables cuyo nombre comienza con un prefijo determinado, proporcionando el prefijo como único argumento del comando.

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

echo $env:homedrive$env:homepath Salida de escritura  $env:homedrive$env:homepath "$env:homedrive$env:homepath"

En PowerShell, no se distinguen mayúsculas o minúsculas en los nombres de variables de entorno.

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

 entorno get-childitem :

Tarea: Unix

Los comandos envy setse pueden utilizar para configurar 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 determinado shell.

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

Unos pocos principios simples gobiernan cómo las variables ambientales logran su efecto.

Las variables de entorno son locales para el proceso en el que fueron configuradas. Si se generan dos procesos de shell y el valor de una variable de entorno se cambia 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 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 da al programa que llama control sobre el entorno del programa llamado.

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

VARIABLE = valor

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

VARIABLE = valor nombre_programa [argumentos]

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

unsetes un comando integrado implementado tanto por la familia de shells Bournesh ( ,,, etc.) como por la familia de shells C (csh, tcsh, etc.) de shells de línea de comandos deksh Unix . Desarma una variable del shell, eliminándola de la memoria y del entorno exportado del shell. Se implementa como un shell incorporado , porque manipula directamente las partes internas del shell. [2] [3] Las variables de shell de solo lectura no se pueden desarmar. Si uno intenta desarmar una variable de solo lectura, el comando imprimirá un mensaje de error y devolverá un código de salida distinto de cero.bashunset

Asignación: DOS, OS/2 y Windows

En 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 y valores de entorno utilizando los siguientes argumentos:

 ESTABLECER  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 variables internas. En CMD.EXE, es posible asignar variables locales que no serán globales usando el SETLOCALcomando y ENDLOCALrestaurar el entorno.

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

 COLOCAR  /? AYUDA A CONFIGURAR CONFIGURAR LOCAL /? AYUDA A CONFIGURAR LOCAL


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

 $env:VARIABLE  =  "VALOR"

Ejemplos

Ejemplos de variables de entorno incluyen:

Variables de entorno verdaderas

Unix

$PATH
Contiene una lista de directorios separados por dos puntos en los que el shell busca comandos que no contienen una barra diagonal en su nombre (los comandos con barras diagonales se interpretan como nombres de archivos para ejecutar y el shell intenta ejecutar los archivos directamente). Es equivalente a la variable de 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 C getpwuidy getuid, $HOMEa menudo se usa por conveniencia en varios scripts de shell (y otros contextos). El uso de la variable de entorno también le brinda al usuario la posibilidad de apuntar a otro directorio.
$PWD
Esta variable apunta al directorio actual. Equivalente a la salida del comando pwd cuando se llama sin argumentos.
$DISPLAY
Contiene el identificador de la pantalla que los programas X11 deben usar de forma predeterminada.
$LD_LIBRARY_PATH
En muchos sistemas Unix con un vinculador dinámico , contiene una lista de directorios separados por dos puntos en los que el vinculador dinámico debe buscar objetos compartidos al crear una imagen de proceso después exec, antes de buscar en cualquier otro directorio.
$LIBPATHo$SHLIB_PATH
Alternativas a las que $LD_LIBRARY_PATHse utilizan normalmente en versiones anteriores de Unix.
$LANG, $LC_ALL, $LC_...
$LANGse utiliza para establecer la configuración regional predeterminada . Por ejemplo, si los valores locales son pt_BR, entonces el idioma se establece en portugués (brasileño) y se utiliza la práctica brasileña cuando sea relevante. Diferentes aspectos de la localización están controlados por $LC_variables individuales ( $LC_CTYPE, , etc.). se puede utilizar para forzar la misma ubicación para todos los aspectos.$LC_COLLATE$LC_DATE$LC_ALL
$TZ
Se refiere a la zona horaria . Puede estar en varios formatos, ya sea especificando la propia zona horaria 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 uso de programas que necesitan permitir al usuario ver contenido en una URL . Los navegadores de la lista deben intentarse desde el primero hasta el último, deteniéndose después del primero que tenga éxito. Esta disposición permite un comportamiento alternativo en diferentes entornos, por ejemplo, en un entorno X11 , se puede usar un navegador gráfico (como Firefox ), pero en un entorno de consola se puede usar un navegador de terminal (como Lynx ). %sPuede haber un token para especificar dónde se debe colocar la URL; de lo contrario, el navegador debería iniciarse 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 CONFIG.SYScuando se cargó 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 de entorno local heredados de procesos secundarios generalmente se reducen al tamaño del contenido 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 sin cambios durante el almacenamiento, sus nombres (sin " %") siempre se convierten a mayúsculas, con la excepción de las variables previas al entorno definidas mediante la CONFIG.SYSdirectiva SETen DR DOS 6.0 y superior [11] [ 12] (y sólo con SWITCHES=/L(para "permitir nombres en minúsculas") en DR-DOS 7.02 y superiores). [10] [13] En principio, MS-DOS 7.0 y superiores también admiten nombres de variables en minúsculas ( %windir%), pero no proporcionan ningún medio para que el usuario los defina. Los nombres de las 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 de DOS, ya que están escritos para esperar variables en mayúsculas únicamente. [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án limitados por el tamaño del segmento de entorno , algunos programas de 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 a través de las opciones SETENVo INSTALL[HIGH]/ (entorno cero), (unidad sustituta, por ejemplo ) y (reubicar el entorno encima del programa). ) para minimizar la huella de memoria residente resultante del controlador .LOADHIGH/Z/D[:loaddrive]B:TSR.COM/E[14] [13] [11] [15] [16] [17]

En 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 delimitados por punto y coma en los que buscar archivos. Por lo general, 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 realmente 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 archivos largos que contengan 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 inicio elegida actualmente. Lo establece el BIOS de DOS ( IO.SYS, IBMBIO.COM, etc.) con el nombre definido por la CONFIG.SYSdirectiva correspondiente MENUITEMantes de iniciar el procesador de comando principal. Su objetivo principal es permitir más casos especiales AUTOEXEC.BATy trabajos por lotes similares dependiendo de la opción seleccionada en el momento del arranque. Esto se puede emular bajo 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 comando que se está ejecutando actualmente. Las aplicaciones pueden leerlo para detectar el uso y recuperar líneas de comando largas, ya que el método tradicional para recuperar los argumentos de la línea de comando a través de PSP (o funciones API relacionadas ) está limitado a 126 caracteres y ya no está disponible cuando se expanden los FCB . o se utiliza el DTA predeterminado. Si bien 4DOS admite líneas de comando más largas, COMMAND.COMtodavía solo admite un máximo de 126 caracteres en el indicador de forma predeterminada (a menos que se anule para /U:128..255especificar el tamaño del búfer de la línea de comando), pero aún así las líneas de comando internas pueden volverse más largas mediante la expansión de variables (dependiendo de /L:128..1024para especificar el tamaño del buffer interno). Además del byte de longitud de la línea de comando en PSP, la línea de comando de PSP normalmente está limitada por ASCII-13 , y las líneas de comando de más de 126 caracteres generalmente se truncarán al insertar un ASCII-13 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 anterior como en @XCOPY ...para compatibilidad con versiones anteriores y para minimizar el tamaño del entorno al cargar programas residentes de terminación y permanencia que no se reubican . Algunas versiones beta de Windows Chicago solían %CMDLINE%almacenar solo el resto de la línea de comando con más de 126 caracteres en lugar de la línea de comando completa. [11] [12]
%COMSPEC%(compatible desde DOS 2.0)
Esta variable contiene la ruta 8.3 completa al procesador de comandos , normalmente o . No debe contener nombres de archivos largos , pero bajo DR-DOS puede contener contraseñas de archivos y directorios . El procesador de comandos principal lo configura para que apunte a sí mismo (normalmente refleja 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 los cambios en la configuración, lo que requeriría que el procesador de comandos se recargara 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 al usuario especificar el /Ymodificador (para asumir "Sí" en las consultas) como predeterminado para los comandos COPY, XCOPYy . MOVEUn valor predeterminado de /Yse puede anular proporcionando el /-Ymodificador en la línea de comando. El /Ymodificador indica al comando que reemplace los archivos existentes sin solicitar confirmación.
%DIRCMD%(compatible desde MS-DOS 5.0 y PC DOS 5.0 , también compatible con ROM-DOS [18] )
Permite al usuario especificar parámetros predeterminados personalizados para el DIRcomando, incluidas las especificaciones de archivo. Los interruptores predeterminados preestablecidos se pueden anular proporcionando el interruptor negativo en la línea de comando. Por ejemplo, si %DIRCMD%contiene el /Wmodificador, se puede anular utilizándolo DIR /-Wen la línea de comando. Esto es similar a la variable de entorno %$DIR%en DOS Plus [19] y una función para definir interruptores predeterminados a DIRtravés de sus interruptores /Co /Ren DR-DOS COMMAND.COM . [11] %DIRCMD% también es compatible con los comandos externos SDIR.COM/ DIR.COM Stacker en Novell DOS 7 y superiores. [11]
%LANG%(compatible desde MS-DOS 7.0 )
Esta variable es compatible con algunas herramientas para cambiar la configuración regional de los mensajes en ediciones multilingües.
%LANGSPEC%(compatible desde MS-DOS 7.0 )
Esta variable es compatible con algunas herramientas para cambiar la configuración regional de los mensajes en ediciones multilingües.
%NO_SEP%(compatible desde PC DOS 6.3 y DR-DOS 7.07 )
Esta variable controla la visualización de separadores de miles en mensajes de varios comandos. Emitidos de forma predeterminada, se pueden suprimir especificando SET NO_SEP=ONo SET NO_SEP=1en PC DOS. DR-DOS además 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 delimitados por punto y coma en los que el intérprete de comandos buscará archivos ejecutables . Equivalente a la $PATHvariable Unix (pero algunas aplicaciones de DOS y Windows también usan la lista para buscar archivos de datos similares a $LD_LIBRARY_PATHlos sistemas tipo Unix). Por lo general, se cambia mediante el comando PATH(o PATH /Een MS-DOS 6.0 ), lo que también garantiza que los nombres de los directorios se conviertan a mayúsculas. Algunos programas de DOS realmente 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 que la variable no se modifique mediante el SETcomando. [10] Los nombres de archivos largos que contengan espacios u otros caracteres especiales no deben ir entre comillas ( "). De forma predeterminada, se busca primero en el directorio actual, pero algunos procesadores de línea de comandos como 4DOS permiten que " ." (para "directorio actual") también se incluya en la lista para anular este orden de búsqueda; Algunos programas de DOS son incompatibles con esta extensión. [10]
%PROMPT%(compatible desde DOS 2.0)
Esta variable contiene una $cadena tokenizada que define la visualización del mensaje . Por lo general, se cambia mediante el PROMPTcomando.
%TEMP%(y %TMP%)
Estas variables contienen la ruta al directorio donde se deben almacenar los archivos temporales . Las herramientas del sistema operativo normalmente solo usan %TEMP%, mientras que los programas de terceros también usan %TMP%. Normalmente %TEMP%tiene prioridad sobre %TMP%.

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

%BETA%
Esta variable contiene un mensaje opcional que se muestra en algunas versiones (incluido DR DOS 3.41 ) COMMAND.COMal iniciar shells secundarios. [20]
%DRDOSCFG%/ %NWDOSCFG%/%OPENDOSCFG%
Esta variable contiene el directorio [21] (sin " \") donde buscar archivos .INIde .CFGconfiguración (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.INIcomo lo utilizan los comandos INSTALLy SETUPy varios programas DR-DOS como DISKOPT, DOSBOOK, EDIT, FBX, FILELINK, / , , , , o . [11] No debe contener nombres de archivos largos .LOCKSECURITY.OVLNWLOGIN.EXESERNOTASKMAXTASKMGRVIEWMAXUNDELETE
%DRCOMSPEC%
Esta variable opcionalmente contiene 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 " ON" o " 1" para imponer el uso de la %COMSPEC%variable incluso en escenarios donde la %COMSPEC%variable puede apuntar al procesador de línea de comandos incorrecto, por ejemplo, cuando se ejecutan algunas versiones de DR- Comando DOS SYSbajo un sistema operativo extranjero. [22]
%DRSYS%
Establecer esta variable en " ON" o " 1" forzará que algunas versiones del SYScomando DR-DOS funcionen 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 que muestra el $Itoken del PROMPTcomando. [20] Puede usarse, por ejemplo, para informar al usuario cómo salir de 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 para Novell NetWare . [10] [11] [20] Véase también la pseudovariable de nombre similar %LOGIN_NAME%.
%MDOS_EXEC%
Esta variable puede tomar los valores " ON" o " OFF" en DOS multiusuario . Si está habilitado, el sistema operativo permite que las aplicaciones se distribuyan en shells secundarios con el Área de programa de DOS (DPA) libre para tener la máxima memoria de 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 muestran 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, sólo se tomará el primer carácter, en mayúscula. Algunos comandos también admiten un parámetro de línea de comando /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 %NOCHAR%configuración), las consultas no se suprimen. Consulte también la CONFIG.SYSdirectiva relacionada NOCHARy la variable de entorno %YESCHAR%. [22]
%NOSOUND%
Establecer esta variable en " ON" o " 1" deshabilitará los pitidos predeterminados emitidos por algunos comandos DR-DOS en ciertas situaciones, como para informar al usuario de la finalización de alguna operación, que se requiere la interacción del usuario o cuando se presionó una tecla incorrecta. Las opciones de la línea de comando para habilitar específicamente ciertos 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 Digital Research -origen en trabajos por lotes y aplicaciones-. [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/MDRDOS ), " " ( 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 para PC concurrente ), " CDOS386" ( DOS 386 concurrente ), " DRMDOS" ( DOS multiusuario DR ), " MDOS" ( DOS multiusuario CCI ) , [23] " IMSMDOS" ( IMS Multiusuario DOS ), " 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 más tarde en la familia Windows NT .DRDOS%OS%
%PEXEC%
En algunas versiones de DR-DOS, esta variable define el comando ejecutado por el $Xtoken del PROMPTcomando antes COMMAND.COMde mostrar el mensaje después de regresar de la ejecución del programa externo. [11] [21]
%SWITCHAR%
Esta variable define el SwitChar que se utilizará para el análisis de argumentos mediante algunos comandos DR-DOS. Si se define, anula la configuración SwitChar actual del sistema. Los únicos caracteres aceptados son " /" (estilo DOS), " -" (estilo Unix) y " [" (estilo CP/M). CONFIG.SYSConsulte también la directiva relacionada SWITCHAR(para establecer la configuración 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 portátiles).
%TASKMGRWINDIR%
Esta variable especifica el directorio donde se encuentra el Windows SYSTEM.INI que utilizará el TASKMGRmultitarea DR-DOS, anulando el procedimiento predeterminado para localizar el archivo. [11]
%VER%
Esta variable contiene la versión del sistema operativo para 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( Novell 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" ( Novell 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 muestran 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, sólo se tomará el primer carácter, en mayúscula. Algunos comandos también admiten un parámetro de línea de comando /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 borrar la pantalla cuando CLSse emite el comando, anulando así el valor predeterminado interno (" ←[2J" en DR-DOS, " ←E" en DOS Plus 1.2 en máquinas Amstrad [19] también como en DOS concurrente , DOS multiusuario y REAL/32 para terminales VT52 , o " ←+" en DOS multiusuario para terminales ASCII ). [23] Si la variable no está definida y no ANSI.SYSse detecta ningún controlador de consola, DR-DOS COMMAND.COMborrará directamente la pantalla a través de la función INT 10h/AH=00h BIOS , como COMMAND.COMlo hace MS-DOS/PC DOS. 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 (" \"), se puede duplicar " \\". [11] [20] [23]
%$DIR%
Soportado por DOS Plus aceptando los valores "L" (largo) o "W" (ancho) para cambiar el diseño predeterminado de los listados de directorios con DIR . Se puede anular usando las opciones de la línea de comando /Lo /W. [20] [19] Véase también la variable de entorno similar y %DIRCMD%las DIRopciones de DR-DOS COMMAND.COM. [11]/C/R
%$PAGE%
Soportado por DOS Plus aceptando los valores " ON" o " OFF" para control de paginación. Establecer esto en " ON" tiene el mismo efecto que agregar /Pcomandos que lo admitan (como DIR o TYPE ). [20] [19]
%$LENGTH%
Utilizado por DOS Plus para definir la longitud de la pantalla de la consola en líneas. Se utiliza para controlar de forma portátil cuándo se debe detener temporalmente la salida de la pantalla hasta que se presione una tecla en conjunto con la /Popción soportada por varios comandos o con la paginación automática. [20] [19] Consulte también las variables de entorno relacionadas %$WIDTH%y %DIRSIZE%la pseudovariable similar %_ROWS%.
%$WIDTH%
Utilizado por DOS Plus para definir el ancho de la pantalla de la consola en columnas. Esto se utiliza para controlar de forma portátil el formato de la salida en pantalla de comandos como DIR /Wo TYPE filename. [20] [19] Consulte también las variables de entorno relacionadas %$LENGTH%y %DIRSIZE%la pseudovariable similar %_COLUMNS%.
%$SLICE%
Utilizado por DOS Plus que acepta un valor numérico para controlar la división del tiempo en primer plano y en segundo plano 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 archivos 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 conocer la notación octal especial \nnnadmitida, 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 un terminal ASCIISET $ON=\033p es . [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 mostrar los nombres de archivos 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 conocer la notación octal especial \nnnadmitida, 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 un terminal ASCIISET $OFF=\033q es . [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, SET $HEADER=\017a una impresora IBM o ESC/P . Para conocer la notación octal especial \nnnadmitida, consulte %$CLS%. [20] Véase 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 conocer la notación octal especial \nnnadmitida, consulte %$CLS%. [20] Véase también la variable de entorno relacionada %$HEADER%.

Datalight ROM-DOS admite una serie de variables de entorno estándar adicionales , además de incluir:

%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]

OS/2

%BEGINLIBPATH%
Contiene una lista de directorios separados por punto y coma en los que se buscan archivos DLL antes de los directorios proporcionados por la %LIBPATH%variable (que se establece durante el inicio del sistema con la directiva especial CONFIG.SYSLIBPATH ). Es posible especificar directorios relativos aquí, incluido " ." para el directorio de trabajo actual. Consulte también la variable de entorno relacionada %ENDLIBPATH%.
%ENDLIBPATH%
una lista de directorios en los que se buscarán archivos 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 Reino Unido.
%LOCALAPPDATA%
Esta variable son los archivos temporales de 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 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 delimitados por punto y coma (no coloque espacios entre ellos) en los que el intérprete de comandos buscará un archivo ejecutable que coincida con el comando dado. Las variables de entorno que representan rutas pueden anidarse dentro de la %PATH%variable, pero solo en un nivel de direccionamiento indirecto. 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 variables. Equivalente a la variable Unix $PATH .
%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 inglés es " C:\Program Files". En las ediciones de 64 bits de Windows (XP, 2003, Vista), también hay %ProgramFiles(x86)%, que por defecto es " C:\Program Files (x86)" y %ProgramW6432%, que por defecto es " C:\Program Files". Depende %ProgramFiles%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 Windows sobre Windows de 64 bits ).
%CommonProgramFiles%
Esta variable apunta al directorio de archivos comunes . El valor predeterminado es " C:\Program Files\Common Files" en la versión en inglés de 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 (si está instalado y configurado) se encuentra 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 %SystemDrive%y la ruta predeterminada en una instalación limpia depende de la versión del sistema operativo. Por defecto:
%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 administración de usuarios [ cita necesaria ] almacenan información relacionada con los recursos y configuraciones propiedad de varios perfiles de usuario dentro del sistema. Como regla general, estas variables no se refieren a recursos o ubicaciones críticas del sistema que sean necesarios para que se ejecute el sistema operativo.

%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 al menú Inicio de Todos los usuarios o a los directorios del Escritorio aparecerán en el menú Inicio o 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). Para las PC domésticas y las de un grupo de trabajo, el servidor de autenticación suele ser la propia PC. Para las PC en un dominio de Windows, el servidor de autenticación es un controlador de dominio (un controlador de dominio principal, o PDC, en dominios basados ​​en Windows NT 4).
%USERPROFILE%
Una variable de entorno especial para 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 la sección 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 opcionales del sistema [ cita necesaria ] no se especifican explícitamente de forma predeterminada, pero se pueden usar para modificar el comportamiento predeterminado de ciertos comandos integrados de la consola. Tampoco es necesario especificar explícitamente estas variables como argumentos de línea de comando.

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, contienen nombres de archivo cortos en lugar de largos . Mientras que algunas variables están presentes faltan en el entorno, también hay algunas variables específicas del entorno).CMDCOMMAND

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 de pseudoentorno

Los procesadores de comandos en DOS y Windows también admiten variables de pseudoentorno. Estos son valores que se obtienen como variables de entorno, pero que realmente no se almacenan en el entorno, sino que se calculan cuando se solicita.

DOS

Además de las verdaderas variables de entorno, que se almacenan estáticamente en el entorno hasta que se modifican o eliminan, existen varias variables de pseudoentorno 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 archivos por lotes (terminología de JP Software) [10] %1 .. %9y %0se pueden usar para recuperar Para conocer los parámetros de llamada de un trabajo por lotes, consulte SHIFT. En los trabajos por lotes, se pueden recuperar como 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] DOS multiusuario MDOS.COM / TMP.EXE(Proceso de mensajes de terminal), JP Software 4DOS , 4OS2 , 4NT , Take Command y Windows cmd.exe ) admiten un tipo de variables de pseudoentorno denominadas información del sistema. variables (terminología de Novell / Caldera) [21] o variables internas (terminología de JP Software), [10] que se pueden utilizar para recuperar diversa información 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, leerlos varias veces seguidas puede devolver valores diferentes incluso dentro del mismo comando; consultarlos no tiene ningún efecto directo en el sistema. Dado que no se almacenan en el entorno, SET no los enumera y no existen para que los recuperen programas externos. Si se define una variable de entorno verdadera con el 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 el prefijo un guión bajo (" _") en 4DOS, etc. por convención (fe %_SECOND%), [10] no están 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 tomar parámetros opcionales (fe %@EVAL[]%) e incluso pueden cambiar el estado del sistema dependiendo de su función.

Variables de información del sistema soportadas por 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 local específica de DR-DOS, como " am" o " pm" en la versión en inglés. Se parece a una variable identificadora 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". Véase también la pseudovariable similar %_DAY%. Se parece a una variable identificadora 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 local específica de DR-DOS, como " " Sun, " Mon", " Tue", " Wed", " Thu" Fri, " " o " Sat" en la versión en inglés. Se parece a una variable identificadora con el mismo nombre en los scripts de inicio de sesión de Novell NetWare .
%ERRORLEVEL%
En COMMAND.COMDR-DOS 7.02 y superiores, esta pseudovariable devuelve el último nivel de error devuelto por un programa externo o el RETURNcomando, fe " 0".." 255". [29] [30] Véase también la pseudovariable de nombre idéntico %ERRORLEVEL%en Windows y el IF ERRORLEVELcomando condicional.
%ERRORLVL%
En DR-DOS 7.02 y superiores, esta pseudovariable devuelve el último nivel de error en un formato de 3 dígitos con ceros a la izquierda, por ejemplo " 000".." 255". [29] [30] En DOS multiusuario , esta es una verdadera variable de entorno que el shell actualiza automáticamente al código de retorno de los programas salientes. [23] Véase también la pseudovariable relacionada %ERRORLEVEL%en DR-DOS y el IF ERRORLEVELcomando.
%GREETING_TIME%
Esta pseudovariable devuelve la hora del saludo del día de 3 niveles. La cadena devuelta depende de la versión local específica de DR-DOS, como " morning", " afternoon" o " evening" en la versión en inglés. Se parece a una variable identificadora con el mismo nombre en los scripts de inicio de sesión de Novell NetWare .
%HOUR%
Esta pseudovariable devuelve las horas de la hora actual en formato de 12 horas sin ceros a la izquierda, por ejemplo " 1".." 12". Se parece a una variable identificadora con el mismo nombre en los scripts de inicio de sesión de Novell NetWare .
%HOUR24%
Esta pseudovariable devuelve las horas de la hora 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 identificadora con el mismo nombre en los scripts de inicio de sesión de Novell NetWare . Véase 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 identificadora con el mismo nombre en los scripts de inicio de sesión de Novell NetWare . Véase 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 identificadora con el mismo nombre en los scripts de inicio de sesión de Novell NetWare . Véase 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 la configuración regional de DR-DOS, como " " January, " February", " ", March" " April, " May" June, " " July, " " August, " " September, " " October, " " o " December" en la versión en inglés. Se parece a una variable identificadora con el mismo nombre en los scripts de inicio de sesión de Novell NetWare .
%NDAY_OF_WEEK%
Esta pseudovariable devuelve el número de día de la semana actual, fe " 1".." 7" (con " 1" para el domingo). Se parece a una variable identificadora 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 dependiendo de la configuración actual de la variable de entorno %VER%. Si %VER%no está definido, %OS_VERSION%devuelve " off". Se parece a una variable identificadora con un nombre idéntico en los scripts de inicio de sesión de Novell NetWare , que puede devolver versiones también para versiones de DOS que no son 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 identificadora con el mismo nombre en los scripts de inicio de sesión de Novell NetWare . Véase 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 identificadora 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, por ejemplo " 1980".." 2099". Se parece a una variable identificadora con el mismo nombre en los scripts de inicio de sesión de Novell NetWare . DR-DOS 7.02 y superiores agregados %_YEAR%para compatibilidad con 4DOS , devolviendo el mismo valor. [10]
%/%
En COMMAND.COMDR-DOS 7.02 y superiores, esta pseudovariable devuelve la configuración SwitChar actual del sistema, ya sea " /" (estilo DOS) o " -" (estilo Unix). [31] [32] Consulte también la CONFIG.SYSdirectiva relacionada SWITCHAR y la variable de entorno %SWITCHAR%.
%_CODEPAGE%
Esta pseudovariable devuelve la página de códigos actual del sistema (" 1".." 65533"), fe " 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 pantalla dependiendo del modo de visualización, fe " " 40, " 80", " 132", etc. Esta variable fue introducida originalmente por 4DOS , [10] pero también estuvo disponible COMMAND.COMdesde 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"), fe " 1" para EE. UU., " 44" para Reino Unido, " 49" para Alemania, " 20049" con ISO 8601 , " 21049" con ISO 8601 y soporte para Euro . [32] [33] Esta variable fue introducida originalmente por 4DOS , [10] pero también estuvo disponible COMMAND.COMdesde DR-DOS 7.02. Véase también la CONFIG.SYSdirectiva COUNTRY.
%_DAY%
Esta pseudovariable devuelve los días de la fecha actual sin ceros a la izquierda, por ejemplo " 1".." 31". Esta variable fue introducida originalmente por 4DOS , [10] pero también estuvo disponible COMMAND.COMdesde DR-DOS 7.02. Véase también la pseudovariable similar %DAY%.
%_HOUR%
Esta pseudovariable devuelve las horas de la hora actual en formato de 24 horas sin ceros a la izquierda, por ejemplo " 0".." 23". Esta variable fue introducida originalmente por 4DOS , [10] pero también estuvo disponible COMMAND.COMdesde 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, por ejemplo " 0".." 59". Esta variable fue introducida originalmente por 4DOS , [10] pero también estuvo disponible COMMAND.COMdesde 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, por ejemplo " 1".." 12". Esta variable fue introducida originalmente por 4DOS , [10] pero también estuvo disponible COMMAND.COMdesde 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 dependiendo del modo de visualización, fe " " 25, " 43", " 50", etc. Esta variable fue introducida originalmente por 4DOS , [10] pero también estuvo disponible COMMAND.COMdesde DR-DOS 7.02. . Vea una variable de entorno similar %$LENGTH%en DOS Plus.
%_SECOND%
Esta pseudovariable devuelve los segundos de la hora actual sin ceros a la izquierda, por ejemplo " 0".." 59". Esta variable fue introducida originalmente por 4DOS , [10] pero también estuvo disponible COMMAND.COMdesde DR-DOS 7.02. Véase también la pseudovariable similar %SECOND%.

Variables de información del sistema soportadas por 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 PNW (de lo contrario, se devuelve una cadena vacía). Consulte también la variable de entorno con un 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 identificadora 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 los asigna el servidor de archivos y permanecen estáticos mientras la conexión IPX permanezca establecida. Se parece a una variable identificadora 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 que inició sesión, si está disponible. Se parece a una variable identificadora con el mismo nombre en los scripts de inicio de sesión de Novell NetWare . Véase también la pseudovariable relacionada %LOGIN_NAME%.

ventanas

Las variables de entorno dinámicas (también denominadas variables internas o variables de información del sistema en DOS) son variables de pseudoentorno admitidas CMD.EXEcuando las extensiones de línea de comandos están habilitadas y se expanden a varios valores discretos cada vez que se consultan, es decir, sus valores pueden cambiar cuando se consultan varias veces. veces incluso dentro del mismo comando. Si bien se pueden utilizar en trabajos por lotes y cuando se les solicite, no se almacenan en el entorno. En consecuencia, no están listados 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 se ha 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 dependiendo CMD.EXEdel directorio actual, el hecho de que el directorio actual siempre estará en formato 8.3COMMAND.COM hará que devuelva un nombre de archivo corto en COMMAND.COM, incluso cuando COMMANDse llame 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.COMllama 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). [29] [34] [30] Los comandos externos y algunos comandos internos establecen niveles de error durante la ejecución. 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 ambas variables %TIME%y %DATE%, es importante leerlas en este orden particular en rápida sucesión para evitar problemas de desplazamiento a medianoche.

Otras conchas

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

Ver también

Notas

  1. ^ ab Las aplicaciones que no manejan adecuadamente las 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.

Referencias

  1. ^ Robbins, Arnold; Beebe, Nelson HF (mayo de 2005). Apandi, Tatiana; Randal, Allison; Witwer, Adam (eds.). Secuencias de comandos de Shell clásicas (1 ed.). O'Reilly . ISBN 978-0-596-00595-5.
  2. ^ "desarmado - valores y atributos de variables y funciones desarmado -". Referencia de comandos y utilidades, La especificación única de UNIX : Especificaciones básicas del grupo abierto, IEEE Std 1003.1-2008 (Número 7 ed.). El IEEE y el 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 integrado no configurado". Wiki de hackers de Bash . Archivado desde el original el 18 de diciembre de 2017 . Consultado el 18 de diciembre de 2017 .
  4. ^ Jacobs, Mike; Koren, Alejandro; Satrán, 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 (2 de agosto de 2002) [Publicado originalmente en 2001]. "El proyecto NAVEGADOR". Archivado desde el original el 21 de septiembre de 2019 . Consultado el 21 de octubre de 2020 .
  6. ^ "LWN - Desarrollo". LWN.net . 2001-02-01. Archivado desde el original el 8 de febrero de 2019 . Consultado el 21 de octubre de 2020 . 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 para piratear sistemas sociales.
  7. ^ Špaček, Michal (19 de enero de 2020) [Primera versión publicada en 2013]. "Env::Navegador-0.06". metacpan.org . Archivado desde el original el 21 de octubre de 2020 . Consultado el 21 de octubre de 2020 . Env::Browser: procesa la variable de entorno $BROWSER y ejecuta el navegador web
  8. ^ "webbrowser: práctico controlador de navegador web". docs.python.org . Archivado desde el original el 13 de octubre de 2020 . Consultado el 21 de octubre de 2020 .
  9. ^ "Navegador web predeterminado: Wiki de Debian". wiki.debian.org . 2020-06-10. Archivado desde el original el 21 de octubre de 2020 . Consultado el 21 de octubre de 2020 . La variable de entorno BROWSER se puede configurar para[…] elegir siempre el navegador que desee.
  10. ^ abcdefghijklmnopqrstu vwxyz aa ab Hermanos, Hardin; Rawson, Tom ; Conn, Rex C .; Pablo, Matías R.; Tinte, 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 completo sobre Novell DOS 7 y OpenDOS 7.01 , que incluye la descripción de muchas características e componentes internos no documentados. El enlace proporcionado apunta a una versión convertida en HTML del archivo, que forma 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 en HTML del 4DOS5TIP.TXTarchivo, que forma parte de la MPDOSTIP.ZIPcolección). [2]
  13. ^ ab Paul, Matthias R. (2 de octubre de 1997). "Caldera OpenDOS 7.01/7.02 Actualización 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. (27 de mayo de 1997) [1996]. "SETENVv1.11". Archivado desde el original el 15 de febrero de 2009 . Consultado el 9 de agosto de 2019 . […] SETENV […] para ocultar y luego restaurar el […] pre-entorno […] Usando SETENV.COM puedes 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, Matías 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 CTMOUSE.ASM prepareTSR encontré un comentario con respecto al entorno cero. […] ¿ DESQview o DRDOS zero-env? […] liberar bloque de entorno […] omitir si hay algún problema […] rellenar con ceros las utilidades de estilo MEM […]
  16. ^ "Manual de usuario de PTS-DOS 2000 Pro" (PDF) . Archivado (PDF) desde el original el 12 de mayo de 2018 . Consultado el 12 de mayo de 2018 .
  17. ^ Paul, Matías 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 Datalight ROM-DOS" (PDF) . Luz de datos, Inc. 3010-0200-0716. Archivado (PDF) desde el original el 2019-03-20 . Consultado el 16 de septiembre de 2018 .
  19. ^ abcdefghi Kotulla, Martín (noviembre de 1987). "De CP/M a MS-DOS, parte 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). "Se publicó CLS actualizado". Lista de correo de 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 continuación de la saga 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 . […] configure DRSYS=ON (opcional para decirle a SYS que está consciente del hecho de que lo está ejecutando en un entorno externo y desea continuar de todos modos sin tener que ACK individualmente algunas advertencias y pantallas de información adicional que se muestran en este escenario). […]
  23. ^ Documentación en línea de abcdefghi CCI multiusuario DOS 7.22 GOLD . Controles concurrentes, Inc. (CCI). 10 de febrero de 1997. AYUDA.HLP.
  24. ^ Guía de instalación de CCI multiusuario DOS 7.22 GOLD . Controles concurrentes, Inc. (CCI). 10 de febrero de 1997. PRINTDOC.HLP.
  25. ^ abc Paul, Matthias R. (20 de febrero de 2002). "¿Cómo detectar FreeCOM/FreeDOS en lotes?". Lista de correo de freedos-dev. Archivado desde el original el 6 de noviembre de 2018 . Consultado el 6 de agosto de 2014 .
  26. ^ "Variables de entorno reconocidas: implementación de Windows". 2024-01-09.
  27. ^ Borde, Shawn (17 de noviembre de 2018). "Variables de entorno en Windows 10: lista completa de variables de entorno en Windows 10". Foros de Windows Diez . Archivado desde el original el 27 de marzo de 2019 . Consultado el 24 de abril de 2019 .
  28. ^ 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 .
  29. ^ 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 proporcionado apunta a una versión anterior convertida en HTML de BATTIPS.TXT archivo.) [7]
  30. ^ abc Auer, Eric; Pablo, Matías R.; Salón, 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.
  31. ^ Paul, Matías 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 .
  32. ^ 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 8 de abril de 2019 . Consultado el 8 de abril de 2019 .
  33. ^ Paul, Matías 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 .
  34. ^ Allen, William; Allen, Linda. "NIVELES DE ERROR de Windows 95/98/ME". Archivado desde el original el 7 de julio de 2011.
  35. ^ "Variables de shell". Manual de referencia de Bash .

Otras lecturas

enlaces externos