Ora

How to Set or Modify the TEMP and TMP Environment Variables in Windows

Published in Windows Environment Variables 6 mins read

Setting or modifying the TEMP and TMP environment variables in Windows is a straightforward process that helps manage where temporary files are stored, impacting system performance and storage. You can achieve this through the graphical user interface, the Command Prompt, or PowerShell.

The TEMP and TMP environment variables point to directories where applications store temporary files. These files are typically created during an application's operation and are meant to be deleted once the task is complete. Proper management of these variables can prevent disk space issues, especially on smaller system drives.

What are TEMP and TMP Environment Variables?

TEMP and TMP are crucial Windows environment variables that define the default directory for temporary files. Most applications, installers, and the operating system itself use these locations to store temporary data during processes like software installation, file unpacking, or document editing.

  • Purpose: To provide a designated location for transient data that is not meant for long-term storage.
  • Importance: Misconfigured or full TEMP directories can lead to application errors, installation failures, and system instability. Changing their location can also be beneficial for performance (e.g., moving to a faster SSD) or for managing disk space on the primary drive.
  • Default Locations (Windows 10/11):
    • User Variables: Typically %USERPROFILE%\AppData\Local\Temp (e.g., C:\Users\YourUsername\AppData\Local\Temp)
    • System Variables: Typically C:\Windows\Temp

While TEMP is primarily used by Windows applications, TMP is often used by older applications or command-line utilities. It is best practice to set both TEMP and TMP to the same directory.

Methods to Set or Modify TEMP and TMP Variables

There are several ways to adjust these environment variables, each suitable for different technical comfort levels and use cases.

1. Using the Graphical User Interface (GUI) - Recommended for Most Users

This method is the most user-friendly and involves navigating through Windows' System Properties.

  1. Open System Properties:
    • Windows 10/11: Search for "environment variables" in the Start menu and select "Edit the system environment variables".
    • Older Windows versions (XP/7): Right-click This PC (or My Computer), select Properties, and then choose Advanced system settings (or navigate to the Advanced tab if directly available).
  2. Access Environment Variables: In the System Properties window, under the "Advanced" tab, click the "Environment Variables..." button.
  3. Identify TEMP and TMP: The Environment Variables window is divided into two sections:
    • User variables for <Your Username>: These variables apply only to your user account.
    • System variables: These variables apply to all users and the system services.
      It's common to modify both, but often only the user variables suffice.
  4. Edit the Variable:
    • In either the "User variables" or "System variables" section, locate TEMP (and TMP).
    • Select the variable and click the "Edit..." button.
  5. Specify New Path: In the "Edit User Variable" or "Edit System Variable" dialog box:
    • Enter the new full path for your temporary directory (e.g., D:\TempFiles). Make sure this directory exists or create it beforehand.
    • Click OK.
  6. Confirm Changes: Click OK on all open windows (Environment Variables, System Properties) to save your changes.
  7. Restart Applications: For the changes to take effect, you must restart any applications that were running (including Command Prompt or PowerShell windows) or even restart your computer for system-wide changes.

2. Using the Command Prompt (CMD) with setx

The setx command allows you to permanently set environment variables from the command line. Changes made with setx will persist across reboots but will only affect new command prompt sessions or applications launched after the command.

  1. Open Command Prompt as Administrator: Search for "cmd" in the Start menu, right-click "Command Prompt," and select "Run as administrator."
  2. Set User Variable: To set TEMP for the current user:
    setx TEMP "C:\NewTempFolder"
    setx TMP "C:\NewTempFolder"
    • Replace "C:\NewTempFolder" with your desired path.
  3. Set System Variable: To set TEMP for all users (system-wide), you need to add the /M switch:
    setx TEMP "C:\NewTempFolder" /M
    setx TMP "C:\NewTempFolder" /M
    • Again, replace "C:\NewTempFolder" with your desired path.
  4. Verify (Optional): Open a new Command Prompt window and type echo %TEMP% to verify the change.

3. Using PowerShell

PowerShell offers a robust way to manage environment variables with more granular control over scope (User or Machine).

  1. Open PowerShell as Administrator: Search for "powershell" in the Start menu, right-click "Windows PowerShell," and select "Run as administrator."
  2. Set User Variable (Permanent):
  3. Set System Variable (Permanent):
    • Replace "C:\NewTempFolder" with your desired path.
  4. Verify (Optional): Open a new PowerShell window and type $Env:TEMP to verify the change.

4. Temporary Changes (Current Session Only)

Sometimes, you only need to change TEMP for a specific Command Prompt or PowerShell session, for instance, when testing or running a script that requires a unique temporary location.

  • In Command Prompt:
    set TEMP=C:\TempForSession
    set TMP=C:\TempForSession

    These changes only last until the Command Prompt window is closed.

  • In PowerShell:
    $Env:TEMP = "C:\TempForSession"
    $Env:TMP = "C:\TempForSession"

    These changes only last until the PowerShell window is closed.

Why and When to Modify TEMP Paths?

Modifying the default TEMP and TMP paths can be advantageous in several scenarios:

  • Disk Space Management: If your primary drive (C:) is running low on space, moving the TEMP directory to a larger secondary drive can prevent errors and free up valuable space.
  • Performance Enhancement: Placing the TEMP directory on a faster storage device, such as an SSD, can improve the performance of applications that frequently create and access temporary files.
  • Troubleshooting: In cases where permission issues or corruption in the default TEMP directory are causing application failures, moving it to a new, clean location can resolve the problem.
  • Data Organization: Centralizing temporary files to a specific, easily manageable folder can aid in regular cleanup.

Comparison of Methods

Method Scope Persistence Ease of Use Best For
Graphical User Interface (GUI) User or System Permanent High Most users, simple and visual changes
Command Prompt (setx) User or System Permanent Medium Scripting, remote management
PowerShell ([Environment]::SetEnvironmentVariable) User or System Permanent Medium/High Advanced scripting, precise control over scope
set (CMD) / $Env (PowerShell) Current Session Temporary High Quick tests, session-specific tasks

Important Considerations

  • Folder Existence: Always ensure that the new TEMP directory you specify already exists. If it doesn't, Windows or applications may revert to a default or encounter errors.
  • Permissions: The user account or system processes must have full read/write permissions to the new TEMP folder. Creating the folder yourself and then setting the path usually grants appropriate permissions.
  • Impact on Running Applications: Changes to TEMP and TMP variables typically do not affect applications that are already running. You'll need to restart those applications (or your computer for system-wide changes) for the new settings to take effect.

By understanding these methods, you can effectively manage the TEMP and TMP environment variables to optimize your Windows system's performance and stability.