如何从Tcl脚本设置Windows环境变量

如何从Tcl脚本设置Windows环境变量,windows,tcl,environment-variables,Windows,Tcl,Environment Variables,我有一个Tcl脚本,它生成一些我喜欢存储在Windows环境变量中的值。我知道这不能直接从我的脚本中完成 我计划做的是将值输出到stderr: puts stderr $var 如何使用stderr通道在调用批处理文件中设置环境变量 有没有更方便的方法从Tcl脚本设置环境变量?最简单的方法可能是使用Tcl脚本编写一个包含环境变量设置的已知名称的批处理文件,例如env.bat: set f [open env.bat w] puts $f "SET FOO=BAR" close $f 然后,您

我有一个Tcl脚本,它生成一些我喜欢存储在Windows环境变量中的值。我知道这不能直接从我的脚本中完成

我计划做的是将值输出到stderr:

puts stderr $var
如何使用stderr通道在调用批处理文件中设置环境变量


有没有更方便的方法从Tcl脚本设置环境变量?

最简单的方法可能是使用Tcl脚本编写一个包含环境变量设置的已知名称的批处理文件,例如
env.bat

set f [open env.bat w]
puts $f "SET FOO=BAR"
close $f
然后,您可以使真正的批处理文件只调用,以从中获取环境变量定义:

CALL env.bat

这是一种最容易实现的方法,其工作方式并不令人惊讶。它也很容易调试,因为您可以在文本编辑器中查看
env.bat
,并判断其中的内容是否合理。(我假设所有内容都在同一个目录中运行,并且代码有权在那里写入;这绝对是最简单的方法。可以在其他地方写入临时文件并传递名称,但要正确执行功能就相当复杂了。)

谢谢Donal,你的建议为我的问题提供了一个通用的解决方案。但是,在我的特殊情况下,可能的返回值数量有限,因此我决定使用exit命令从Tcl返回,然后在调用者批处理文件中计算ERRORLEVEL。很好!