Microsoft KB Archive/38839

{| = PRB: %TMP% in NEW-VARS.BAT Causes Fatal Errors =
 * width="100%"|

Article ID: Q38839

The information in this article applies to:
 * Microsoft C for MS-DOS, versions 5.0, 5.1, 6.0, 6.0a, 6.0ax
 * Microsoft C/C++ for MS-DOS, version 7.0
 * Microsoft Visual C++ for Windows, versions 1.0, 1.5
 * Microsoft Visual C++ 32-bit Edition, versions 1.0, 2.0, 2.1, 4.0, 5.0

SYMPTOMS
When using a compiler included with one of the products listed above, the following error message is generated:

With Microsoft C compiler versions 5.0, 5.1, 6.0, 6.0a, and 6.0ax:

fatal error C1042: cannot open intermediate file -- no                     such file or directory. With Microsoft C/C++ compiler version 7.0: fatal error C1043: cannot open compiler intermediate file With Microsoft C/C++ versions 8.0 and 8.0c: fatal error C1083: Cannot open compiler intermediate file: 'path\filename': No such file or directory With Microsoft C/C++ 32-bit compiler--versions 8.0 and higher--run from within the Visual WorkBench: Error: Could not get temporary file name. Error: Could not generate command line for the 32-bit C/C++ Compiler for 80x86 tool. With Microsoft C/C++ 32-bit compiler--versions 8.0 and higher--run from the command line: fatal error C1083: Cannot open compiler intermediate file: '': No such file or directory

CAUSE
This message occurs because the setting of the TMP environment variable is invalid. TMP may not specify more than one directory, a directory that does not exist, or a directory that is read-only.

If the NEW-VARS.BAT file was appended to the MS-DOS AUTOEXEC.BAT file and there was already a setting in AUTOEXEC.BAT for the TMP variable, this message will occur because NEW-VARS.BAT contains a %TMP% setting.

RESOLUTION
This message occurs because the setting of the TMP environment variable is invalid. TMP may not specify more than one directory, a directory that does not exist, or a directory that is read-only.

If the NEW-VARS.BAT file was appended to the MS-DOS AUTOEXEC.BAT file and there was already a setting in AUTOEXEC.BAT for the TMP variable, this message will occur because NEW-VARS.BAT contains a %TMP% setting.

MORE INFORMATION
%TMP% appends any TMP directories already defined at that location. Generally, it is best not to have any % % symbols in AUTOEXEC.BAT because it should be the first place the environment is defined.

For more information on the TMP environment variable, please see the following article in the Microsoft Knowledge Base:

ARTICLE-ID: Q74747 TITLE    : INFO: Why Microsoft Development Tools Use TMP Instead of               TEMP Keywords         : kbsetup vc10setup vc15setup vc20setup Version          : 6.0 6.0a 6.0ax 7.0 1.0 1.5 2.0 2.1 4.0 5.0 Platform         : MS-DOS NT WINDOWS Issue type       : kbprb
 * }