在我的计算机上,环境变量%TMP%和%TEMP%都指向同一位置。
仅针对向后兼容性问题,还是存在真正的差异?
答案 0 :(得分:19)
这是为了兼容性。它一直回到DOS。由于没有标准,一些DOS(和Win 3.x)应用程序将查找%TMP%环境变量,而其他应用程序将查找%TEMP%。如果你在AUTOEXEC.BAT文件中设置它们,那么你最好。
Windows NT自动设置它们只是为了确保所有应用程序继续正常工作。 %TEMP%现在是标准,但%TMP%依旧。
编辑:看起来理查德已经在评论中提到了DOS方面。答案 1 :(得分:15)
答案 2 :(得分:4)
我认为只是为了兼容性,正如我在Windows NT中看到的那样,两个变量都被定位到%WinDir%\Temp\
中的相同位置
每次谈论%TMP%
时,我都没有看到使用%TEMP%
。
答案 3 :(得分:0)
Raymond Chen talks about the historical use of TMP
and TEMP
, and says this specifically about Windows:
For whatever reason, the original authors of the GetTempFileName function chose to look for
TMP
before looking forTEMP
.
The rest of the article is worth a read in explaining the historical use of both in DOS. It sounds like DOS preferred TEMP
semi-officially, rather than TMP
, but third-party programmers were free to use what they liked, particularly given the lack of the standard API functions that Windows has.