【问题标题】:How to set Windows environment variable from Tcl script如何从 Tcl 脚本设置 Windows 环境变量
【发布时间】:2014-11-27 10:09:02
【问题描述】:

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

我打算做的是将值输出到stderr:

puts stderr $var

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

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

【问题讨论】:

    标签: windows tcl environment-variables


    【解决方案1】:

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

    set f [open env.bat w]
    puts $f "SET FOO=BAR"
    close $f
    

    然后你可以让你的 real 批处理文件只是CALL 以便从中获取环境变量定义:

    CALL env.bat
    

    这是最容易以一种并不令人惊讶的方式工作的方法。它也很容易调试,因为您总是可以在文本编辑器中查看env.bat 并确定其中的内容是否合理。 (我假设所有东西都在同一个目录中运行,并且代码有权在那里写入;这绝对是最简单的方法。可以在其他地方写一个临时文件并通过周围的名字,但要正确地发挥作用要复杂得多。)

    【讨论】:

    • 感谢 Donal,您的建议为我的问题提供了通用解决方案。然而,在我的特殊情况下,我只有有限数量的可能返回值,所以我决定使用 exit 命令从 Tcl 返回,然后在调用者批处理文件中评估 ERRORLEVEL。工作正常!
    猜你喜欢
    • 2016-10-03
    • 2011-03-05
    • 1970-01-01
    • 1970-01-01
    • 2016-10-01
    • 1970-01-01
    • 2014-01-29
    • 2012-01-19
    相关资源
    最近更新 更多