【发布时间】:2018-11-18 02:56:38
【问题描述】:
我有一个批处理文件,我正在尝试访问环境变量。如果我只是单击它并运行它就能够获取该变量,但是当我从 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;
}
【问题讨论】:
-
我没有看到您在代码中访问环境的位置
-
您的 C# 代码是作为您的用户运行,还是作为其他用户作为某些计划任务的一部分运行?这可以解释差异。
-
它在批处理文件“exe”代码中的变量名将是批处理文件的路径,如 D:\\Test\\BatchFileName.bat 和 echo %ENV_VAR_NAMe% 写入批处理文件.
-
我会说它以用户身份运行,但在单击批处理时它能够访问环境。变量而不是来自代码
标签: c# batch-file cmd environment-variables command-prompt