【发布时间】:2014-11-27 10:09:02
【问题描述】:
我有一个 Tcl 脚本,它生成一些我喜欢存储在 Windows 环境变量中的值。我知道这不能直接在我的脚本中完成。
我打算做的是将值输出到stderr:
puts stderr $var
如何使用 stderr 通道在调用批处理文件中设置环境变量?
有没有更方便的方法从 Tcl 脚本设置环境变量?
【问题讨论】:
标签: windows tcl environment-variables
我有一个 Tcl 脚本,它生成一些我喜欢存储在 Windows 环境变量中的值。我知道这不能直接在我的脚本中完成。
我打算做的是将值输出到stderr:
puts stderr $var
如何使用 stderr 通道在调用批处理文件中设置环境变量?
有没有更方便的方法从 Tcl 脚本设置环境变量?
【问题讨论】:
标签: windows tcl environment-variables
最简单的方法可能是使用 Tcl 脚本编写一个包含环境变量设置的已知名称的批处理文件,例如 env.bat:
set f [open env.bat w]
puts $f "SET FOO=BAR"
close $f
然后你可以让你的 real 批处理文件只是CALL 以便从中获取环境变量定义:
CALL env.bat
这是最容易以一种并不令人惊讶的方式工作的方法。它也很容易调试,因为您总是可以在文本编辑器中查看env.bat 并确定其中的内容是否合理。 (我假设所有东西都在同一个目录中运行,并且代码有权在那里写入;这绝对是最简单的方法。可以在其他地方写一个临时文件并通过周围的名字,但要正确地发挥作用要复杂得多。)
【讨论】: