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

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

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

现在,环境变量“ red_root”肯定存在于产卵过程的“环境变量”中,但是执行似乎并未扩展环境变量,因此找不到文件。如何获取流程。开始在文件名中扩展环境变量?

有帮助吗?

解决方案

Environment.ExpandEnvironmentVariables 方法应该在这里提供帮助。

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

string unexpandedPath = "%red_root%\\bin\\texturepreviewer.exe";   
psi.FileName = Environment.ExpandEnvironmentVariables(unexpandedPath);

其他提示

你有没有尝试过 System.Environment.GetEnvironmentVariable ("red_root", EnvironmentVariableTarget.Machine) ?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top