![如何附加其中包含空格的注册表项值?](https://linux22.com/image/1498075/%E5%A6%82%E4%BD%95%E9%99%84%E5%8A%A0%E5%85%B6%E4%B8%AD%E5%8C%85%E5%90%AB%E7%A9%BA%E6%A0%BC%E7%9A%84%E6%B3%A8%E5%86%8C%E8%A1%A8%E9%A1%B9%E5%80%BC%EF%BC%9F.png)
我找到了以下页面(如何从 cmd 修改现有注册表项值名称的数据?),这非常有帮助,但我还有一个问题。
我的 PATH 值包含“c:\Program Files\Microsoft SQL Server\100\Tools\Binn\”,我想在其中添加“P:\SQL”。当我运行下面的脚本时,我的 PATH 将变成“C:\Program;P:\SQL”。需要修改哪些内容才能使我的 PATH 变成“c:\Program Files\Microsoft SQL Server\100\Tools\Binn\;P:\SQL”?
以下是我所拥有的:
for /F "skip=2 tokens=3" %%r in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path') do set oldVal=%%r
echo previous=%oldVal%
set newVal=%oldVal%;P:SQL
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path /t REG_EXPAND_SZ /d %newVal% /f
谢谢。
答案1
我如何为我的 添加价值PATH
?
我的
PATH
值包含"c:\Program Files\Microsoft SQL Server\100\Tools\Binn\"
,我想"P:\SQL"
向其添加
为什么要读/写注册表?
只需使用setx
向您的添加一个值PATH
:
setx PATH "%PATH%;P:\SQL" /m
笔记:
/m
在系统环境中设置变量HKLM
。(默认为本地环境
HKCU
)
进一步阅读
- Windows CMD 命令行的 AZ 索引- 与 Windows cmd 行相关的所有事物的绝佳参考。
- 设置- 永久设置环境变量,SETX 可用于为机器(HKLM)或当前登录用户(HKCU)设置环境变量。
- 什么是 PATH 和其他环境变量?如何设置或使用它们?
答案2
如果你真的想篡改注册表,你可以按照以下步骤进行操作,但个人风险
@echo off
set new_value=;P:/SQL ::set the new value here
set key="HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
for /F "delims= skip=2" %%r in ('reg query %key% /v "Path"') do set old_value=%%r
set old_value=%old_value: Path REG_SZ =%
set new_value=%old_value%%new_value%
reg add %key% /v "Path" /d "%new_value%" /f
我必须说,这是一种非常粗糙的方法。在修改注册表之前,请务必记得备份注册表。