如何在批处理文件中将数据附加到 Windows 注册表值?

如何在批处理文件中将数据附加到 Windows 注册表值?

如何在批处理文件中将数据附加到 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 问题。

相关内容