如何在批处理文件中将数据附加到 Windows 注册表值?
reg.exe
似乎仅支持创建/删除键和值 - 我想取现有REG_MULTI_SZ
值并向其附加更多数据。
答案1
如果您有 git 和 git bash,那么您可以使用 shell 脚本。这是一个将参数附加到 Path 注册表项值的函数。
function append_path(){
tpath=$(reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" //v Path | grep -oP "%System.*")
tpath="$tpath;$1"
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" //v Path //t REG_EXPAND_SZ //d "$tpath" //f
}
双斜杠可能不是必需的,但根据我的经验,我发现我需要它们才能使某些命令在 bash shell 中正确运行。
要使用它你只需写
append_path C:/tools/bin
当然,如果路径中有空格,则需要提供引号,否则函数会将空格后面的任何内容解释为新参数。当然,您需要确保路径是 Windows 格式。因此,如果您的脚本正在为您获取路径,则需要转换它们。有些脚本可以做到这一点,但那是另一个 SO 问题。