При запуске приложения я хочу сохранить определенные ключи конфигурации приложения (например, путь к каталогу, строка подключения к базе данных) в качестве переменной среды, запустив 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
Однако я также хотел знать, возможно ли создавать и хранить переменные среды на уровне процесса приложения? т.е. я должен иметь возможность использовать эти переменные среды только на уровне приложения, а не на уровне системы / пользователя.