Changing to remove path from environment variable PATH

25,554

Solution 1

Using VBScript, you can get the path variable:

dim shell, env, path, path_entries
set shell = createobject("wscript.shell")
set env = shell.environment("system")
path = env("path")

Then split to get an array of the pieces:

path_entries = split(path, ";")

Set any entries to an empty string to remove them:

path_entries(3) = ""

Then reconstruct the path:

path = join(path_entries, ";") ' elements in path are delimited by ";"
env("path") = path

Solution 2

I have found this, which I can't seem to get it to work: %Path:str1=str2% str1 is the path and str2 is null, which I'm not sure how to set it to null on the command line.

Not sure why this didn't work for you, but here is an example that does work (at least on Windows XP).

set path=%path:c:\windows\system32;=%

This will remove "c:\windows\system32;" from the path variable. Make sure you have the ; on the end otherwise it may partially remove some other paths.

Remember that this will only affect the current instance of the command prompt. If you quit or work in a different command prompt, any changes you made to the environment variables will be lost.

Solution 3

There's a difference between changing Path variable for a current process and/or for child processes, to changing the default load state of the variable when windows starts.

You might probably be able to do it with WMI. If not, take procmon and see what "My Computer" is doing when you edit a system variable. This will enable you to write a script.

Share:
25,554
Bruce227
Author by

Bruce227

Just looking.

Updated on April 16, 2020

Comments

  • Bruce227
    Bruce227 about 4 years

    I'm trying to use a command line implementation to change the PATH environment variable to remove a path, so I don't have to manually remove it on a bunch of machines.

    I have found this, which I can't seem to get it to work:

    %Path:str1=str2%
    

    str1 is the path and str2 is null, which I'm not sure how to set it to null on the command line.

    If there is another way, I would be glad to give it a try.