[英].bat file in Visual Studio 2017
我正在尝试在我的应用程序中运行 .bat 文件。 此 .bat 调用 JTAG 应用程序以在微控制器中加载固件。 但是,我不知道为什么这无法执行软件。 如果我在 Visual Studio 之外运行 .bat,它可以完美运行。
我有 GUI 和一个按钮,我将点击它来执行固件加载
为了生成命令文件,我使用了软件 Uniflash。 该软件生成一个文件夹,其中包含执行 JTAG 访问和加载固件所需的所有文件。
我的代码如下:
private void Button_Relay_Click(object sender, EventArgs e)
{
Process MSP = new Process();
MSP.StartInfo.WorkingDirectory = @"D:\\Projects\\Test_Fixture\\Test_Fixture_Visual_Studio\uniflash_windows_64";
MSP.StartInfo.FileName = "dslite.bat ";
MSP.Start();
Thread.Sleep(500);
MSP.WaitForExit();
}
但是,当我执行此代码时,编译没问题,但是当我运行此代码时出现此错误:
问题:
我总是会为每个应用程序生成特定的 bat 文件,并将 .bat 文件夹包含在 VS C# 的文件夹中,我如何设置目录路径以在我的软件文件夹中自动检查?
如果路径正确,为什么VS找不到文件?
广告 2)
关于错误:
那是因为您可能指定了错误的路径:
代替
MSP.StartInfo.WorkingDirectory = @"D:\\Projects\\Test_Fixture\\Test_Fixture_Visual_Studio\uniflash_windows_64";
要么在任何地方使用\\\\
(在Test_Fixture_Visual_Studio
和uniflash_windows_64
之间只有一个\\
)并跳过@
或使用@
并只使用一个\\
而不是两个。 所以用这个替换你的行:
MSP.StartInfo.WorkingDirectory = @"D:\Projects\Test_Fixture\Test_Fixture_Visual_Studio\uniflash_windows_64";
广告 3)
关于你的过程的结果:
在我看来,不调用批处理文件而是直接调用进程本身更容易。 通过这种方式,您可以检索Process.ExitCode
属性以检索可执行文件的退出代码(如果它通过退出代码返回其状态)。 您可以通过在命令外壳中调用可执行文件来检查这一点,并通过调用检查上次执行的错误级别
echo %ERRORLEVEL%
通常0
表示成功,其他一切都表示某种失败。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.