有没有一种方法可以使用rust为Windows设置环境变量

时间:2020-05-15 21:31:03

标签: windows rust

好吧,我是rust的新手,正在构建一个命令行应用程序,并且正在使用rust ...

我知道如何使用批处理脚本设置系统环境变量,但是我想在rust中实现所有功能,因此有一种方法可以使用rust为Windows设置环境变量。

我尝试了 set_var(KEY),但它仅适用于当前正在运行的进程...

所以请帮助我,谢谢。

1 个答案:

答案 0 :(得分:1)

您将需要使用注册表来执行此操作,因此有必要的免责声明:错误地使用注册表会破坏您的系统。

在Windows上,用户环境变量存储在HKEY_CURRENT_USER\Environment\中。 Rust库winreg使这一过程变得非常简单:

use winreg::{enums::*, RegKey};

fn main() {
    let hkcu = RegKey::predef(HKEY_CURRENT_USER);
    let (env, _) = hkcu.create_subkey("Environment").unwrap(); // create_subkey opens with write permissions
    env.set_value("TestVar", &"TestValue").unwrap();
}