更改以从环境变量 PATH 中删除路径

Posted

技术标签:

【中文标题】更改以从环境变量 PATH 中删除路径【英文标题】:Changing to remove path from environment variable PATH 【发布时间】:2011-03-05 14:02:45 【问题描述】:

我正在尝试使用命令行实现来更改PATH 环境变量以删除路径,因此我不必在一堆机器上手动删除它。

我找到了这个,但我似乎无法让它工作:

%Path:str1=str2%

str1 是路径,str2 是 null,我不知道如何在命令行上将其设置为 null。

如果有其他方法,我很乐意试一试。

【问题讨论】:

【参考方案1】:

我找到了这个,我似乎无法让它工作:%Path:str1=str2% str1 是路径,str2 是 null,我不知道如何在命令行。

不知道为什么这对您不起作用,但这里有一个确实有效的示例(至少在 Windows XP 上)。

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

这将删除“c:\windows\system32;”从路径变量。确保最后有;,否则它可能会部分删除其他一些路径。

请记住,这只会影响命令提示符的当前实例。如果您退出或在不同的命令提示符下工作,您对环境变量所做的任何更改都将丢失。

【讨论】:

在某些环境中,Windows 命令扩展被禁用,因此您需要启用命令扩展 + 延迟扩展才能进行替换:setlocal ENABLEEXTENSIONS && setlocal ENABLEDELAYEDEXPANSION 在我的 Win 10 thks 上工作【参考方案2】:

使用VBScript,可以得到路径变量:

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

然后拆分得到一个数组:

path_entries = split(path, ";")

将任何条目设置为空字符串以删除它们:

path_entries(3) = ""

然后重构路径:

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

【讨论】:

【参考方案3】:

更改当前进程和/或子进程的 Path 变量与更改 Windows 启动时变量的默认加载状态之间存在差异。

您也许可以使用 WMI 来实现。如果没有,请使用 procmon 并在编辑系统变量时查看“我的电脑”在做什么。这将使您能够编写脚本。

【讨论】:

【参考方案4】:

在 vbScript 命令文件 (.cmd) 或 (.bat) 中,您可以使用以下内容删除环境变量:

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Environment("Process").Remove("PATH")

【讨论】:

我不打算尝试删除环境变量。我正在尝试更改环境变量中的路径列表并删除不再需要的路径。【参考方案5】:

有一种更简单的方法可以代替使用命令提示符。右键单击“我的电脑”进入高级系统设置,在底部单击环境变量,突出显示“路径”并单击“编辑”。您可以在那里添加、删除或更改路径中的目录顺序。

希望这对某人有所帮助, 2

【讨论】:

以上是关于更改以从环境变量 PATH 中删除路径的主要内容,如果未能解决你的问题,请参考以下文章

3月27日打卡

如何在不扩展令牌的情况下获取 PATH 环境变量的值?

JDK的path环境变量配置(两种方式)

Linux打印变量环境配置别名和文件删除操作

JDK安装与卸载

如何在PowerShell中更改环境变量并启动应用程序