Невозможно получить доступ к переменной среды в командном файле из приложения C # - PullRequest
0 голосов
/ 08 июня 2018

У меня есть один пакетный файл, и я пытаюсь получить доступ к переменной окружения.Он может получить эту переменную, если я просто щелкну по ней и запустлю, но когда я запускаю ее из кода C #, он не может получить доступ к переменной окружения и отображает пустое значение.

например, в пакете говорят, что написано - echo% ENV_VAR_NAMe% это будет работать, если я просто нажму на пакет.но из кода C # это показывает пустой.Код C # приведен ниже.пожалуйста помогите

      try
        {
            myProcess.StartInfo.FileName = exe;
            myProcess.StartInfo.UseShellExecute = true;
            myProcess.StartInfo.CreateNoWindow = true;
            myProcess.StartInfo.ErrorDialog = false;
            myProcess.StartInfo.WorkingDirectory = 
            Path.GetDirectoryName(exe);
            myProcess.Start();  
            myProcess.WaitForExit();
            myProcess.Close();
            return true;

        }
        catch (Exception e)
        {
            return false;
        }

1 Ответ

0 голосов
/ 08 июня 2018

Почему бы не использовать Environment.GetEnvironmentVariable()?

using System; 
using System.IO; 
public class Example 
{ 
    public static void Main() 
    { 
        // Change the directory to %WINDIR%
        Environment.CurrentDirectory = Environment.GetEnvironmentVariable("windir"); 
        DirectoryInfo info = new DirectoryInfo(".");
        Console.WriteLine("Directory Info: " + info.FullName); 
    } 
} 

// The example displays output like the following: // Directory Info: C:\windows

См. MSDN

...