11

我正在尝试创建一个这样的过程:

var psi = new ProcessStartInfo
{
    FileName = @"%red_root%\bin\texturepreviewer.exe",
    UseShellExecute = true
};

var process = Process.Start(psi);
process.WaitForExit();

现在环境变量“red_root”肯定存在于衍生进程的环境变量中,但执行似乎没有扩展环境变量,因此找不到文件。如何让 Process.Start 扩展文件名中的环境变量?

4

2 回答 2

23

Environment.ExpandEnvironmentVariables方法在这里应该有所帮助。

将嵌入在指定字符串中的每个环境变量的名称替换为与变量值等效的字符串,然后返回结果字符串。

string unexpandedPath = "%red_root%\\bin\\texturepreviewer.exe";   
psi.FileName = Environment.ExpandEnvironmentVariables(unexpandedPath);
于 2010-12-08T14:39:07.823 回答
6

你试过System.Environment.GetEnvironmentVariable ("red_root", EnvironmentVariableTarget.Machine)吗?

于 2010-12-08T14:38:11.830 回答