Чтобы ответить на вопрос конкретно:
Какая разница между двумя?
Нет никакой разницы. Это просто разные псевдонимы для одного и того же пути. Как отметил Марк, некоторые программы используют %TMP%
то время как другие используют %TEMP%
. По умолчанию Windows назначает оба пути одинаковым для обеспечения согласованности между различными программами и даже для защиты от ошибок разработчика, таких как использование обоих в одной программе.
Также обратите внимание, что переменная %Path%
не имеет ничего общего ни с %TMP%
ни с %TEMP%
. %Path%
является системной переменной, в то время как %TMP%
и %TEMP%
являются как системными, так и пользовательскими переменными. Версии системы ссылаются на C:\windows\TEMP
. AFAIK, только пользователь "System" может фактически использовать эти переменные, о чем свидетельствует простой тест; откройте окно cmd и введите echo %TMP%
или echo %TEMP%
, и он вернет путь, определенный в пользовательской версии переменных. Однако, поскольку %Path%
не имеет пользовательской версии (по умолчанию), вы можете выполнить echo %Path%
и он вернет значение системной переменной.
Я не совсем уверен, как программы используют системную переменную "Path", которая, вероятно, имела в виду cygwin, но, независимо от этого, могу заверить вас, что это не имеет никакого отношения к TMP или TEMP.
Надеюсь это ответит на твой вопрос.
РЕДАКТИРОВАТЬ: Я только что вспомнил, для чего %Path%
- он позволяет вам получить доступ к любым файлам, которые находятся по любому из путей, указанных в переменной, без необходимости использовать полный путь к файлу. Например, добавление «C:\myprog\bin» в% Path% позволит вам просто ввести myprog
или myprog --help
т.д. В командную строку, не вводя полный путь, например "C:\myprog\bin\myprog.exe" --help
. Конечно, использование командной строки является лишь примером, оно позволяет любой программе или интерфейсу получить доступ к любому типу файла без полного пути.