¿Es correcto tener estas dos variables de entorno TEMP y TMP? Si hago cambios en uno, ¿debo hacer los mismos cambios en el otro? Por ejemplo, estaba instalando cygwin y las instrucciones me dijeron que cambiara la variable PATH, pero tanto TEMP como TMP tienen la variable de ruta. ¿Cuál es la diferencia entre los dos?
No estoy seguro de por qué la gente quiere ver esto, pero aquí están los valores de la ruta: Ruta en TEMP: C: \ Archivos de programa \ Archivos comunes \ Microsoft Shared \ Windows Live; C: \ Archivos de programa (x86) \ Archivos comunes \ Microsoft Shared \ Windows Live; C: \ Archivos de programa (x86) \ NVIDIA Corporation \ PhysX \ Common;% SystemRoot% \ system32;% SystemRoot%;% SystemRoot% \ System32 \ Wbem;% SYSTEMROOT% \ System32 \ WindowsPowerShell \ v1.0 \; C: \ Archivos de programa (x86) \ Archivos comunes \ Acronis \ SnapAPI \; C: \ Archivos de programa (x86) \ Windows Kits \ 8.1 \ Windows Performance Toolkit \; C: \ Archivos de programa \ Microsoft SQL Server \ 110 \ Tools \ Binn \; C: \ Archivos de programa (x86) \ Windows Live \ Shared
Ruta en TMP:% USERPROFILE% \ AppData \ Local \ Temp
fuente
TMP
podría ser el preferido (debido a laGetTempFileName
función) ...Respuestas:
Para responder la pregunta específicamente:
No hay diferencia. Son solo alias diferentes para el mismo camino. Como Mark mencionó, algunos programas usan
%TMP%
mientras que otros usan%TEMP%
. Windows asigna ambos a la misma ruta de forma predeterminada para garantizar la coherencia entre los diferentes programas e incluso protegerse contra errores del desarrollador, como el uso de ambos en el mismo programa.También tenga en cuenta que la
%Path%
variable no tiene nada que ver con%TMP%
o%TEMP%
.%Path%
es una variable del sistema, mientras que%TMP%
y%TEMP%
son ambos variables del sistema, así como variables de usuario. Las versiones del sistema enlazan aC:\windows\TEMP
. AFAIK, solo el usuario del "Sistema" puede usar esas variables, como lo demuestra una prueba simple; abre una ventana cmd y escribeecho %TMP%
oecho %TEMP%
, y devuelve la ruta definida en la versión de usuario de las variables. Sin embargo, dado que%Path%
no tiene una versión de usuario (por defecto), puede hacerloecho %Path%
y devuelve el valor de la variable del sistema.No estoy del todo seguro de cómo los programas usan la variable del sistema "Path", que probablemente es a lo que se refería cygwin, pero de todos modos, puedo asegurarle que no tiene nada que ver con TMP o TEMP.
Espero que responda tu pregunta.
EDITAR: Acabo de recordar para qué
%Path%
sirve: le permite acceder a cualquier archivo que se encuentre en cualquiera de las rutas especificadas en la variable sin necesidad de usar la ruta completa al archivo. Por ejemplo, agregar "C: \ myprog \ bin" a% Path% le permitirá escribirmyprog
omyprog --help
etc. en la línea de comandos sin tener que escribir la ruta completa, como"C:\myprog\bin\myprog.exe" --help
. Por supuesto, el uso de la línea de comandos es solo un ejemplo, permite que cualquier programa o interfaz acceda a cualquier tipo de archivo sin necesidad de la ruta completa.fuente
%USERPROFILE%\AppData\Local\Temp
solucionar uno de mis problemas, pero generó muchos más. Lo cambié de nuevo aC:\Windows\Temp
. Si hay una versión de usuario, entonces el sistema puede usarC:\Windows\Temp
, mientras que yo puedo usar%USERPROFILE%\AppData\Local\Temp
y todos están contentos. Lo probaré. ¡Gracias!Necesitas ambos, ya que diferentes programas usan diferentes.
No es necesario que se configuren en el mismo lugar, ya que solo los programas muy mal escritos usarán ambos, suponiendo que apunten a lo mismo.
/ tmp es un directorio común para archivos temporales en Unix que también usa la variable de entorno TMPDIR
De memoria (cuando usé esto a mediados de los 80) TEMP era el original usado en DOS y TMP solía ser utilizado por programas que fueron portados desde Unix para coincidir con / tmp. Sin embargo, cuando los programas se escribieron en DOS ya que no había control, diferentes desarrolladores usaron diferentes. En Windows moderno, el valor predeterminado de Microsoft es el mismo para ambos. Vea este documento
fuente
TMPDIR
. La norma tiene ninguna mención de cualquieraTMP
oTEMP
, ambos de los cuales se originó en el mundo DOS.