В чем разница между% TMP% и% TEMP% в переменных среды Vista? - PullRequest
21 голосов
/ 24 февраля 2009

На моем компьютере переменные среды% TMP% и% TEMP% обе указывают на одно и то же местоположение.

Это только проблемы обратной совместимости, или есть реальная разница?

Ответы [ 4 ]

19 голосов
/ 24 февраля 2009

Это для совместимости. Все начинается в DOS. Поскольку стандартов не было, некоторые приложения DOS (и Win 3.x) искали бы переменную среды% TMP%, а другие -% TEMP%. Лучше всего, если вы установите оба из них в файле AUTOEXEC.BAT.

Windows NT автоматически настроила их оба, чтобы убедиться, что все приложения продолжают работать нормально. % TEMP% теперь является стандартом, но% TMP% живет.

РЕДАКТИРОВАТЬ: похоже, Ричард уже упоминал аспект DOS в комментарии.

15 голосов
/ 24 февраля 2009

Чтобы завершить остальные ответы:

Переменная среды

в MS-DOS 5 (1991-1994) % TEMP% иногда указывает на C: \ DOS , поэтому удаление всех файлов в% TEMP% приведет к вызывают большие проблемы, если не сказать больше.

http://www.operating-system.org/betriebssystem/bsgfx/microsoft/msdos500-scr-01.png

4 голосов
/ 24 февраля 2009

Я думаю, что только для совместимости, как я мог видеть в Windows, начиная с NT 4.0, обе переменные были нацелены на то же место в %WinDir%\Temp\

Также я никогда не видел использование %TMP%, каждый раз, когда речь шла о %TEMP%.

0 голосов
/ 31 мая 2019

Раймонд Чен рассказывает об историческом использовании TMP и TEMP и говорит это конкретно о Windows:

По какой-то причине авторы GetTempFileName функции решили искать TMP, прежде чем искать TEMP.

Остальная часть статьи заслуживает прочтения при объяснении исторического использования обоих в DOS. Похоже, DOS предпочел TEMP полуофициально, а не TMP, но сторонние программисты могли свободно использовать то, что им нравилось, особенно с учетом отсутствия стандартных функций API, которые есть в Windows.

...