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

时间:2019-05-31 09:57:05

标签: windows batch-file path environment-variables

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

当我使用时:

SETX /M PATH "%CD%;%PATH%"

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

  

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

当我使用GUI检查System变量时,我看到User Path正在添加到System Path。结果,系统路径中有重复的条目。

我尝试将%PATH%变量分配给一个临时变量并回显,但是我也看到了重复项。

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

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

REG QUERY "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v PATH"

但是我对我们是否可以使用它来获取PATH值并分配给另一个变量没有太多了解。

  1. 因此,我需要找到一种仅将SYSTEM PATH分配给临时变量(例如SYS_PATHS)的方法。我该怎么办?
  2. 是否有更好的方法来克服这种情况?

1 个答案:

答案 0 :(得分:0)

我在@Mofi提供的link中找到了我所问问题的答案。这样一来,您只能采用系统路径,并向其添加目录。

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%"