Using setx to append to user PATH

2

My attempt:

setx PATH "%PATH%;%~dp0"

How do I do this without everything in system PATH getting duplicated in user PATH?

J.Doe

Posted 2016-05-04T14:51:40.113

Reputation: 35

2

Possible duplicate of How to update the PATH user environment variable from command-line

– DavidPostill – 2016-05-04T19:57:36.897

Answers

1

How do I do this without the system PATH getting duplicated in user PATH?

Use the /m option.

setx /m PATH "%PATH%;%~dp0"

Notes:

  • /m - Set the variable in the system environment HKLM. (The default is the local environment HKCU)

setx usage

F:\test>setx /?

SetX has three ways of working:

Syntax 1:
    SETX [/S system [/U [domain\]user [/P [password]]]] var value [/M]

Syntax 2:
    SETX [/S system [/U [domain\]user [/P [password]]]] var /K regpath [/M]

Syntax 3:
    SETX [/S system [/U [domain\]user [/P [password]]]]
         /F file {var {/A x,y | /R x,y string}[/M] | /X} [/D delimiters]

Description:
    Creates or modifies environment variables in the user or system
    environment. Can set variables based on arguments, regkeys or
    file input.

Parameter List:
    /S     system          Specifies the remote system to connect to.

    /U     [domain\]user   Specifies the user context under which
                           the command should execute.

    /P     [password]      Specifies the password for the given
                           user context. Prompts for input if omitted.

    var                    Specifies the environment variable to set.

    value                  Specifies a value to be assigned to the
                           environment variable.

    /K     regpath         Specifies that the variable is set based
                           on information from a registry key.
                           Path should be specified in the format of
                           hive\key\...\value. For example,
                           HKEY_LOCAL_MACHINE\System\CurrentControlSet\
                           Control\TimeZoneInformation\StandardName.

    /F     file            Specifies the filename of the text file
                           to use.

    /A     x,y             Specifies absolute file coordinates
                           (line X, item Y) as parameters to search
                           within the file.

    /R     x,y string      Specifies relative file coordinates with
                           respect to "string" as the search parameters.

    /M                     Specifies that the variable should be set in
                           the system wide (HKEY_LOCAL_MACHINE)
                           environment. The default is to set the
                           variable under the HKEY_CURRENT_USER
                           environment.

    /X                     Displays file contents with x,y coordinates.

    /D     delimiters      Specifies additional delimiters such as ","
                           or "\". The built-in delimiters are space,
                           tab, carriage return, and linefeed. Any
                           ASCII character can be used as an additional
                           delimiter. The maximum number of delimiters,
                           including the built-in delimiters, is 15.

    /?                     Displays this help message.

NOTE: 1) SETX writes variables to the master environment in the registry.

      2) On a local system, variables created or modified by this tool
         will be available in future command windows but not in the
         current CMD.exe command window.

      3) On a remote system, variables created or modified by this tool
         will be available at the next logon session.

      4) The valid Registry Key data types are REG_DWORD, REG_EXPAND_SZ,
         REG_SZ, REG_MULTI_SZ.

      5) Supported hives:  HKEY_LOCAL_MACHINE (HKLM),
         HKEY_CURRENT_USER (HKCU).

      6) Delimiters are case sensitive.

      7) REG_DWORD values are extracted from the registry in decimal
         format.

Further Reading

  • An A-Z Index of the Windows CMD command line - An excellent reference for all things Windows cmd line related.
  • setx - Set environment variables permanently, SETX can be used to set Environment Variables for the machine (HKLM) or currently logged on user (HKCU).

DavidPostill

Posted 2016-05-04T14:51:40.113

Reputation: 118 938

Thanks, I need it to be set for the HKCU environment though – J.Doe – 2016-05-04T19:52:55.343

Ah. See this answer How to update the PATH user environment variable from command-line

– DavidPostill – 2016-05-04T19:57:16.270

0

It looks like this page may cover what you are trying to do: adding PATH with SETX or PATHMAN or something else? Or maybe add more detail to your question, so we can understand how this is different. However, that page has multiple solutions to either the same or a similar problem as to what you are asking.

Bewc

Posted 2016-05-04T14:51:40.113

Reputation: 228

I was hoping to avoid getting pathed or using the machine env vars – J.Doe – 2016-05-04T15:19:55.523