如何在tcl脚本中设置windows环境变量

如何在tcl脚本中设置windows环境变量,tcl,Tcl,我正在处理一个Tcl脚本,其中有一个变量,我只想在其执行完成后保持其值的活动性,因此我尝试通过使用exec函数在脚本中执行set windows命令来定义windows环境变量 我也试图通过谷歌找到解决方案,但也没有成功。 这是我试过的一行代码 exec set verName=$xVar 如果你能帮助我,那就太好了。提前感谢。首先,阅读此问题及其接受的答案: 您是如何从Tcl做到这一点的?好的,标准的registry包为您提供了以下工具: package require registry

我正在处理一个Tcl脚本,其中有一个变量,我只想在其执行完成后保持其值的活动性,因此我尝试通过使用exec函数在脚本中执行set windows命令来定义windows环境变量

我也试图通过谷歌找到解决方案,但也没有成功。 这是我试过的一行代码

exec set verName=$xVar

如果你能帮助我,那就太好了。提前感谢。

首先,阅读此问题及其接受的答案:

您是如何从Tcl做到这一点的?好的,标准的
registry
包为您提供了以下工具:

package require registry

set root {HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment}
set theVariable "ABCDE"
set theValue "12345XYZ"

registry set $root\\$theVariable $theValue
registry broadcast "Environment"

注册表
包的手册页面有一个具体的示例,用于将其与
路径
一起使用。更新到其他变量是微不足道的。脚本需要在具有管理员权限的会话中运行,才能更新注册表的该部分。

set env(您的_变量)值将设置环境变量,并且仅在执行期间可用。i、 这是暂时的,不是永久的。不过这不会影响通话过程。除非是资源管理器。@Joey,这取决于进程是否侦听
WM\u SETTINGSCHANGED
事件并正确地对其进行操作。的确,但对于一级近似值来说,资源管理器大概是唯一一个这样做的进程。
catch {exec cmd /C "setX $variable_name $valueToSet"}