22

在我的计算机上,环境变量 %TMP% 和 %TEMP% 都指向同一个位置。

那些只是为了向后兼容问题,还是有真正的区别?

4

4 回答 4

19

这是为了兼容性。它一直回到DOS。由于没有标准,一些 DOS(和 Win 3.x)应用程序会寻找 %TMP% 环境变量,而其他应用程序会寻找 %TEMP%。如果将它们都设置在 AUTOEXEC.BAT 文件中,则最好。

Windows NT 自动设置它们,只是为了确保所有应用程序继续正常工作。%TEMP% 现在是标准,但 %TMP% 仍然存在。

编辑:看起来理查德已经在评论中提到了 DOS 方面。

于 2009-02-24T15:12:48.067 回答
15

要完成其他答案:

环境变量

MS-DOS 5 (1991-1994)中,%TEMP% 有时会指向 C:\DOS,因此删除 %TEMP% 中的所有文件至少会导致很大的问题。

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

于 2009-02-24T15:32:09.020 回答
4

我认为只是为了兼容性,正如我在从 NT 4.0 开始的 Windows 中看到的那样,这两个变量都针对相同的位置%WinDir%\Temp\

另外我从来没见过用%TMP%,每次都在说%TEMP%

于 2009-02-24T14:41:10.437 回答
2

Raymond Chen谈到了 and 的历史用途,TMPTEMP专门谈到了 Windows:

无论出于何种原因,GetTempFileName函数的原始作者都选择在查找之前先TMP查找TEMP.

本文的其余部分值得一读,以解释两者在 DOS 中的历史用途。听起来 DOS 是TEMP半官方的首选,而不是TMP.,但第三方程序员可以自由使用他们喜欢的东西,特别是考虑到 Windows 缺少标准 API 函数。

于 2019-05-31T11:39:48.767 回答