冥界3大法王 发表于 2022-11-2 19:26

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
Path这个键值吧,

这个是字符串型,导出的却是2进制型的 ,如何让它导出也是字符串型键值?
想编个一键全局环境变量的工具。。。不喜欢导出的是二进制型

下面这样的:
Windows Registry Editor Version 5.00


"Path"=hex(2):43,00,3a,00,5c,00,50,00,72,00,6f,00,67,00,72,00,61,00,6d,00,20,\
00,46,00,69,00,6c,00,65,00,73,00,20,00,28,00,78,00,38,00,36,00,29,00,5c,00,\
43,00,6f,00,6d,00,6d,00,6f,00,6e,00,20,00,46,00,69,00,6c,00,65,00,73,00,5c,\
00,4f,00,72,00,61,00,63,00,6c,00,65,00,5c,00,4a,00,61,00,76,00,61,00,5c,00,\
6a,00,61,00,76,00,61,00,70,00,61,00,74,00,68,00,3b,00,25,00,4a,00,41,00,56,\
00,41,00,5f,00,48,00,4f,00,4d,00,45,00,25,00,5c,00,62,00,69,00,6e,00,3b,00,\
25,00,4a,00,41,00,56,00,41,00,5f,00,48,00,4f,00,4d,00,45,00,25,00,5c,00,6a,\
00,72,00,65,00,5c,00,62,00,69,00,6e,00,3b,00,45,00,3a,00,5c,00,4a,00,45,00,\
42,00,33,00,2e,00,32,00,34,00,5c,00,43,00,68,00,6f,00,75,00,47,00,6f,00,75,\
00,53,00,68,00,69,00,5f,00,70,00,6c,00,61,00,74,00,66,00,6f,00,72,00,6d,00,\
2d,00,74,00,6f,00,6f,00,6c,00,73,00,3b,00,25,00,41,00,4e,00,44,00,52,00,4f,\
00,49,00,44,00,5f,00,53,00,44,00,4b,00,5f,00,52,00,4f,00,4f,00,54,00,25,00,\
3b,00,00,00

冥界3大法王 发表于 2022-11-2 20:55

平淡最真 发表于 2022-11-2 20:33
具体导出来是不是这种格式我不知道只是参照你上面那个

发现个更好的。

setx命令
setx设置永久用户环境变量
setx env_name env_value
注意:有的路径中会带有空格,所以最好用双引号把变量和值都包裹起来,也就是写成如下形式:
setx "env_name" "env_value"
例,追加一个路径到用户path环境变量中:
setx "path" "D:\test;%path%"
setx设置永久系统环境变量
setx加上/m参数表示设置的是系统的环境变量,格式如下所示:
setx env_name env_value /m
注意:有的路径中会带有空格,所以最好用双引号把变量和值都包裹起来,也就是写成如下形式:
setx "env_name" "env_value" /m
例如,设置当前路径%cd%到系统环境环境变量中:
setx "Path" "%cd%;%path%" /m
注意:setx设置环境变量后,将在新打开的终端中生效,当前终端不会立即生效。
注意:setx可能会在环境变量中设置多个相同的值,例如,在当前cmd窗口中运行:
setx "Path" "D:\test;%path%" /m
然后再重新打开cmd窗口,进入D:\test路径,然后再次运行:
setx "Path" "D:\test;%path%" /m
这样D:\test将会在path环境变量中出现两次.
用setx设置永久环境变量及注意事项
设置用户环境变量
setx ENV_NAME env_value
设置系统环境变量
setx ENV_NAME env_value /m
注意1.
在某些情况下会出现“setx 无效语法 默认选项不能超过'2'次”的错误,据信是因为原先的环境变量中存在空格导致的,可使用双引号进行避免。
注意2.
setx设置环境变量后,将在新打开的终端中生效,当前终端不会立即生效。所以当设置path这样内容较为丰富的环境变量时,要一次到位,而不要针对同一变量反复调用setx。例如:
正确做法:
set path_=%Path%
setx “Path” “%path_%;newpath1;newpath2” /m

平淡最真 发表于 2022-11-2 20:29

冥界3大法王 发表于 2022-11-2 19:51
@平淡最真 能set 永久不?

这个是读出来path   然后你可以写到reg文件里面去,在加上上面的固定格式和路径
生成一个相当于导出来的reg文件。你可以保存为bat文件执行看看行不行

@echo off
(echo Windows Registry Editor Version 5.00
echo,
echo
echo "Path"=%path%)>test.reg

pause

平淡最真 发表于 2022-11-2 19:39

直接 echo %path%写入吧

冥界3大法王 发表于 2022-11-2 19:51

平淡最真 发表于 2022-11-2 19:39
直接 echo %path%写入吧

@平淡最真 能set 永久不?

平淡最真 发表于 2022-11-2 20:33

具体导出来是不是这种格式我不知道只是参照你上面那个

sdy623 发表于 2022-11-2 22:49

好像类似的环境变量的编辑工具已经有了 叫 Rapid Environment Editor下载链接

冥界3大法王 发表于 2022-11-2 23:24

sdy623 发表于 2022-11-2 22:49
好像类似的环境变量的编辑工具已经有了 叫 Rapid Environment Editor下载链接

虽然有了,但还得学会自己造,这样检测环境变量的同时,就可以自动加进去了。

tl;dr 发表于 2022-11-3 06:45

Linshengqiang 发表于 2022-11-3 07:04

嗯 高手过招 就是不一样
页: [1] 2
查看完整版本: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment