Est-il juste d'avoir ces deux variables d'environnement TEMP et TMP? Si j'apporte des modifications à l'un, dois-je apporter les mêmes modifications à l'autre? Par exemple, j'installais cygwin et les instructions m'ont dit de changer la variable PATH, mais TEMP et TMP ont la variable path. Quelle est la différence entre les deux?
Vous ne savez pas pourquoi les gens veulent voir cela, mais voici les valeurs du chemin: Chemin dans TEMP: C: \ Program Files \ Fichiers communs \ Microsoft Shared \ Windows Live; C: \ Program Files (x86) \ Common Files \ Microsoft Shared \ Windows Live; C: \ Program Files (x86) \ NVIDIA Corporation \ PhysX \ Common;% SystemRoot% \ system32;% SystemRoot%;% SystemRoot% \ System32 \ Wbem;% SYSTEMROOT% \ System32 \ WindowsPowerShell \ v1.0 \; C: \ Program Files (x86) \ Common Files \ Acronis \ SnapAPI \; C: \ Program Files (x86) \ Windows Kits \ 8.1 \ Windows Performance Toolkit \; C: \ Program Files \ Microsoft SQL Server \ 110 \ Tools \ Binn \; C: \ Program Files (x86) \ Windows Live \ Shared
Chemin dans TMP:% USERPROFILE% \ AppData \ Local \ Temp
la source
TMP
pourrait être celui à préférer (en raison de laGetTempFileName
fonction) ...Réponses:
Pour répondre spécifiquement à la question:
Il n'y a pas de différence. Ce sont juste des alias différents pour le même chemin. Comme Mark l'a mentionné, certains programmes utilisent
%TMP%
tandis que d'autres utilisent%TEMP%
. Windows attribue les deux au même chemin par défaut pour garantir la cohérence entre les différents programmes et même pour protéger contre les erreurs de développeur telles que l'utilisation des deux dans le même programme.Notez également que la
%Path%
variable n'a rien à voir avec%TMP%
ou%TEMP%
.%Path%
est une variable système, tandis que%TMP%
et%TEMP%
sont à la fois des variables système et des variables utilisateur. Les versions du système sont liées àC:\windows\TEMP
. AFAIK, seul l'utilisateur "Système" peut réellement utiliser ces variables, comme en témoigne un simple test; ouvrez une fenêtre cmd et tapezecho %TMP%
ouecho %TEMP%
, et il retourne le chemin défini dans la version utilisateur des variables. Cependant puisqu'il%Path%
n'a pas de version utilisateur (par défaut), vous pouvez le faireecho %Path%
et il retourne la valeur de la variable système.Je ne sais pas exactement comment les programmes utilisent la variable système "Path", ce à quoi cygwin faisait probablement référence, mais quoi qu'il en soit, je peux vous assurer que cela n'a rien à voir avec TMP ou TEMP.
J'espère que cela répond à votre question.
EDIT: Je viens de me rappeler à quoi
%Path%
sert - il vous permet d'accéder à tous les fichiers qui se trouvent dans l'un des chemins spécifiés dans la variable sans avoir besoin d'utiliser le chemin complet du fichier. Par exemple, ajouter "C: \ myprog \ bin" à% Path% vous permettra de taper simplementmyprog
oumyprog --help
etc dans la ligne de commande sans avoir à taper le chemin complet, comme"C:\myprog\bin\myprog.exe" --help
. Bien sûr, l'utilisation de la ligne de commande n'est qu'un exemple, elle permet à n'importe quel programme ou interface d'accéder à n'importe quel type de fichier sans avoir besoin du chemin complet.la source
%USERPROFILE%\AppData\Local\Temp
résoudre l'un de mes problèmes, mais en a généré bien d'autres. Je l'ai changé enC:\Windows\Temp
. S'il existe une version utilisateur, alors le système peut utiliserC:\Windows\Temp
, alors que je peux utiliser%USERPROFILE%\AppData\Local\Temp
et tout le monde est content. Je vais essayer. Merci!Vous avez besoin des deux car différents programmes en utilisent différents.
Ils n'ont pas besoin d'être placés au même endroit car seuls les programmes très mal écrits utiliseront les deux en supposant qu'ils pointent vers la même chose.
/ tmp est un répertoire commun pour les fichiers temporaires sous Unix utilisant également la variable d'environnement TMPDIR
De mémoire (quand je l'ai utilisé au milieu des années 80), TEMP était l'original utilisé sous DOS et TMP avait tendance à être utilisé par les programmes portés depuis Unix pour correspondre au / tmp. Cependant, lorsque les programmes étaient écrits en DOS car il n'y avait aucun contrôle, différents développeurs en utilisaient différents. Dans Windows moderne, la valeur par défaut de Microsoft est la même pour les deux, voir ce document
la source
TMPDIR
. La norme ne mentionne ni l'unTMP
ni l' autreTEMP
, tous deux originaires du monde DOS.