从应用程序运行批处理文件时路径不同

时间:2019-07-17 11:49:18

标签: c#

尝试从批处理文件运行命令时得到'jlink' is not recognized as an internal or external command。批处理文件可以在命令提示符下单独运行。我已经检查了应用程序的路径,并且可以在PATH设置中看到它。

但是,我将echo %path%添加到了批处理文件中,该应用程序未出现在输出中...

我如何启动bat文件...

    public bool Execute(string batchFile)
    {
        var processInfo = new ProcessStartInfo();
        processInfo.WorkingDirectory = programmersPath;
        processInfo.FileName = programmersPath + batchFile;
        processInfo.RedirectStandardError = true;
        processInfo.RedirectStandardOutput = true;
        processInfo.UseShellExecute = false;

        var process = Process.Start(processInfo);

我的用户PATH设置...

enter image description here

批处理文件...

echo %path%
jlink 

路径输出中的最后几行...(我没有粘贴整个内容,但jlink不存在)

C:\Users\rober\AppData\Local\Programs\Microsoft VS Code\bin;C:\Program Files (x86)\mingw-w64\i686\mingw32\bin

编辑

我正在编写WinForms应用程序,并从Visual Studio启动它。我对用户/权限不做任何事情。 Visual Studio是作为我的用户而不是管理员启动的。

当我从cmd运行echo %path%时,我可以在其中进行隔离。

我显然错过了一些东西,我只是看不到什么。

1 个答案:

答案 0 :(得分:0)

疯狂地搜索了所有有关如何访问环境变量并将其转发到生成的进程的组合后,问题最终在重启我的笔记本电脑后消失了!!!通常,我只是将其关闭而不是关闭。

尽管两周前安装了jlink软件,但似乎只有重新启动才能解决此问题。我本可以发誓我最近执行过一次更新并重新启动,但是不能100%确定。