views:

82

answers:

4

Hi,

I'm trying to use a command line implementation to change the Path env var to remove a path so I don't have to manually removed 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.

Thanks.

A: 

In a vbScript command file (.cmd) or (.bat), you can use the following to remove an environment variable:

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Environment("Process").Remove("PATH")
orvado
I'm not looking at trying to remove the environmental variable. I'm trying to change the list of paths in the environmental variable and remove one that is no longer needed.
Bruce227
A: 

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.

Pavel Radzivilovsky
A: 

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, "")
env("path") = path
Bryan Ash
A: 

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.

Grant Peters