программно создавать переменные среды, используя пакетный скрипт - PullRequest
0 голосов
/ 02 мая 2020

При запуске приложения я хочу сохранить определенные ключи конфигурации приложения (например, путь к каталогу, строка подключения к базе данных) в качестве переменной среды, запустив batch script. Я попробовал это, написав скрипт Powershell, как описано в этой статье здесь , который работает абсолютно нормально. Я попробовал то же самое, используя файл batch, как показано ниже, но он, похоже, не работает.

Ниже приведен пример файла .bat, который я пытаюсь загрузить / настроить при запуске приложения.

РЕДАКТИРОВАТЬ: Исправление .bat сценария в соответствии с предложением Compo в разделе комментариев ниже.

@echo off
SET "LOG=api.log"
SET "DATABASE_URL=host=xyz.rs.aws.com dbname=somename user=someuser password=somepassword sslmode=enable"
SET "LISTEN_PROTOCOL=http"
@echo on

Ниже приведен пример кода, используемый для запуска файла sample.bat и получить значение

    string batFilePath = string.Format(@"D:\sample.bat");
    Process proc = new Process();
    proc.StartInfo.WorkingDirectory = batFilePath ;
    proc.StartInfo.CreateNoWindow = true;
    proc.Start()
    proc.WaitForExit();

   // fetch the value set by batch file
   var data = Environment.GetEnvironmentVariable("LOG"); // returns null here

Однако я также хотел знать, возможно ли создавать и хранить переменные среды на уровне процесса приложения? т.е. я должен иметь возможность использовать эти переменные среды только на уровне приложения, а не на уровне системы / пользователя.

...