簡體   English   中英

我如何確保C#的Process.Start將擴展環境變量?

[英]How do I ensure C#'s Process.Start will expand environment variables?

我正在嘗試創建一個這樣的過程:

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

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

現在環境變量“red_root”肯定存在於生成進程的環境變量中,但是執行似乎沒有擴展環境變量,因此找不到該文件。 如何讓Process.Start擴展文件名中的環境變量?

Environment.ExpandEnvironmentVariables方法應該在這里提供幫助。

將嵌入在指定字符串中的每個環境變量的名稱替換為等效於變量值的字符串,然后返回結果字符串。

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

您是否嘗試過System.Environment.GetEnvironmentVariable ("red_root", EnvironmentVariableTarget.Machine)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM