我正在尝试创建一个类似的过程:
var psi = new ProcessStartInfo
{
FileName = @"%red_root%\bin\texturepreviewer.exe",
UseShellExecute = true
};
var process = Process.Start(psi);
process.WaitForExit();
现在环境变量“red_root”肯定存在于生成进程的环境变量中,但是执行似乎没有扩展环境变量,因此找不到该文件。如何让Process.Start在文件名中扩展环境变量?
答案 0 :(得分:21)
Environment.ExpandEnvironmentVariables
方法应该有帮助。
替换每个环境的名称 变量嵌入指定的 字符串,其字符串相当于 那么变量的值 返回结果字符串。
string unexpandedPath = "%red_root%\\bin\\texturepreviewer.exe";
psi.FileName = Environment.ExpandEnvironmentVariables(unexpandedPath);
答案 1 :(得分:6)
你试过System.Environment.GetEnvironmentVariable ("red_root", EnvironmentVariableTarget.Machine)
吗?