从C#Force运行批处理文件是从文件目录运行的吗?

时间:2014-09-06 23:19:23

标签: c# windows batch-file cmd

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

我刚刚安装了Arena和Daggerfall,它们都是通过从.bat文件启动的DOSBox运行的。因此,我决定通过编写自己的.exe将其转换为.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文件本身。

非常感谢任何帮助!!

1 个答案:

答案 0 :(得分:5)

尝试设置ProcessStartInfo.WorkingDirectory

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