我有一个Tcl脚本,它生成一些我喜欢存储在Windows环境变量中的值。我知道这不能直接从我的脚本中完成。
我打算做的是将值输出到stderr:
puts stderr $var
如何使用stderr通道在调用批处理文件中设置环境变量?
是否有更方便的方法从Tcl脚本设置环境变量?
答案 0 :(得分:1)
最简单的方法可能是使用Tcl脚本编写一个包含环境变量设置的已知名称的批处理文件,例如env.bat
:
set f [open env.bat w]
puts $f "SET FOO=BAR"
close $f
然后,您可以将真正的批处理文件CALL
设置为从中获取环境变量定义:
CALL env.bat
这种方法最容易以令人惊讶的方式开展工作。它也很容易调试,因为你总是可以在文本编辑器中查看env.bat
,并弄清楚其中的内容是否合理。 (我假设所有内容都在同一个目录中运行,并且代码有权在那里编写; 可以在其他地方写一个临时文件并传递名称,但要使功能正常,这样做会相当复杂。)