【问题标题】:SetEnvironmentVariable doesn’t work for %var%\target.extensionSetEnvironmentVariable 不适用于 %var%\target.extension
【发布时间】:2018-05-30 05:26:26
【问题描述】:
string var1 = "drive";
string var2 = "parent";
string var3 = "testpath";
string var4 = "mypath";
string var5 = "partpath";
string var6 = "mypath2";
string path1 = "E:\\";
string path2 = "%drive%ParentFolder";
string path3 = "%parent%\\Parent.txt";
string path4 = "E:\\ParentFolder\\Parent.txt";
string path5 = "E:\\ParentFolder\\";
string path6 = "%partpath%Parent.txt";
Environment.SetEnvironmentVariable(var1, path1, EnvironmentVariableTarget.User);
Environment.SetEnvironmentVariable(var2, path2, EnvironmentVariableTarget.User);
Environment.SetEnvironmentVariable(var3, path3, EnvironmentVariableTarget.User);
Environment.SetEnvironmentVariable(var4, path4, EnvironmentVariableTarget.User);
Environment.SetEnvironmentVariable(var5, path5, EnvironmentVariableTarget.User);
Environment.SetEnvironmentVariable(var6, path6, EnvironmentVariableTarget.User);

如果我要启动 %testpath%(即 var3 path3),结果:%parent%Parent.txt not found

如果我要启动%mypath%(即var4 path4),结果:成功打开Parent.txt

如果我要启动 %mypath2%(即 var6 path6),结果:%parent%Parent.txt not found

使用通过 SetEnvironmentVariable 设置的 %var%\application.exe 似乎有问题。

有人遇到同样的问题吗?

提前致谢

【问题讨论】:

    标签: c# environment-variables


    【解决方案1】:

    如果递归逻辑不起作用,请用 getenvironmentalvariable 值替换。

    【讨论】:

    • 鉴于此设置环境变量可能以不同的顺序(竞争条件)进入,getenvironmentvariable 可能无法先获取结果值并将其设置为后续变量。
    猜你喜欢
    • 2015-06-21
    • 1970-01-01
    • 1970-01-01
    • 2015-05-04
    • 1970-01-01
    • 1970-01-01
    • 2013-12-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多