c# - 从 C# 强制运行批处理文件从文件目录运行?

标签 c# windows batch-file cmd

这就是我的最终目标。 Steam 允许您将其他已安装的游戏添加到您的库中,但前提是它是指向开始运行的 .exe 文件。

我刚刚安装了 Arena 和 Daggerfall,它们都通过从 .bat 文件启动的 DOSBox 运行。所以我决定自己编写一个 .exe 文件。到目前为止,我已经编写了代码。当我运行 .bat 文件时,它打开一切正常,但是,当我尝试从我的代码运行它时,.bat 文件执行但有错误。下面是我的代码:

        if (File.Exists("D:\\Bethesda Softworks\\Arena\\Arena (Full Screen).bat"))
        {
            System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo("cmd.exe", "/c" + "\"D:\\Bethesda Softworks\\Arena\\Arena (Full Screen).bat\"");
            psi.RedirectStandardOutput = true;
            psi.UseShellExecute = false;

            System.Diagnostics.Process proc;
            proc = System.Diagnostics.Process.Start(psi);
        }

我得到的错误是: "系统找不到指定的路径。'dosbox.exe' 不是内部或外部命令,也不是可运行的程序或批处理文件。

我不确定这是否是一个问题,因为如何从批处理文件调用 dosbox 或 .exe 如何最终运行批处理文件。无论哪种方式,我都宁愿在代码中解决这个问题,也不愿更改 .bat 文件本身。

非常感谢任何帮助!!

最佳答案

尝试设置 ProcessStartInfo.WorkingDirectory

psi.WorkingDirectory = "D:\\Bethesda Softworks\\Arena";

关于c# - 从 C# 强制运行批处理文件从文件目录运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25705658/

相关文章:

windows - DirectInput 模拟摇杆范围

batch-file - 如何在不基于系统时钟的CMD中生成随机数

c# - 代码分析因 RIA 而中断?

javascript - 使用 AngularJS 和 Razor 绑定(bind)值

c# - 在 C# 中以编程方式将文本添加到剪贴板

c++ - 在代码中区分平移和正常屏幕模式 - Windows

c# - 使用 JsonTextReader 值作为新流传递 Base64 编码的字符串

linux - 虚拟机能否像基于硬件的操作系统一样高效?

windows - 如何在 Windows/命令行/文件打开对话框下匹配精确的文件扩展名?

windows - 如何将多个 *.zip 存档文件解压缩到单独的文件夹中?