C#のProcess.startが環境変数を拡大することを確認するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/4388639

質問

私はそうするようなプロセスを作成しようとしています:

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帰属
所属していません StackOverflow
scroll top