使用批处理文件附加到系统路径变量值

Pha*_*tom 5 windows path batch-file environment-variables

我想创建一个批处理文件以将当前目录添加到我的系统变量PATH不是我的用户变量)

当我使用时:

SETX /M PATH "%CD%;%PATH%"
Run Code Online (Sandbox Code Playgroud)

它做了所需的事情。但是,我收到一条错误消息:

保存的数据被截断为 1024 个字符。

当我使用 GUI 检查系统变量时,我看到用户路径已添加到系统路径中。因此,系统路径有重复的条目。

我尝试将%PATH%变量分配给临时变量并进行回显,但我也看到了重复的情况。

我在一些堆栈答案中看到,%PATH%我们在批处理文件中使用的变量实际上是用户路径和系统路径的串联。

在命令提示符下,我尝试了:

REG QUERY "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v PATH"
Run Code Online (Sandbox Code Playgroud)

但我不太清楚我们是否可以使用它来获取该 PATH 值并分配给另一个变量。

  1. 所以我需要找到一种方法仅将系统路径分配给临时变量,比如说 SYS_PATHS。我怎样才能做到这一点?
  2. 有没有更好的方法来克服这种情况?

Pha*_*tom 1

我在@Mofi 提供的链接中找到了我提出的问题的答案。这是您可以仅获取系统路径并向其附加目录的方法。

set "env=HKLM\System\CurrentControlSet\Control\Session Manager\Environment"

for /f "tokens=2*" %%I in (
     'reg query "%env%" /v Path ^| findstr /i "\<Path\>"'
) do setx /m PATH "%%J;%CD%"
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

2555 次

最近记录:

6 年,4 月 前