如何使用C#在控制台应用程序中执行命令或进程

时间:2018-08-21 17:59:24

标签: c# console-application spss

我正在开发一个控制台应用程序,它将所有spss(.sav)文件转换为.csv文件。为此,我手动创建了一个SPSS作业(spssJob1.spj)(使用一个.sps文件),然后遍历所有输入文件(所有.sav文件),并尝试通过更新输入和输出路径来运行该作业。 .sps文件(text.sps)。但是我不知道如何从我的应用程序调用该作业执行命令。

当前,命令是:

df

,这应该从

执行
stats C:\Users\10522\Desktop\spssJob1.spj -production

因为此stats命令仅在此目录中可用。

因此在我的应用中,我需要从此路径调用此过程;我可以使用我的应用程序来调用一个C:\Program Files\IBM\SPSS\Statistics\22 文件,但是我不知道如何从特定目录中调用一个命令。

这是我的代码:

.exe

2 个答案:

答案 0 :(得分:3)

        ProcessStartInfo pi = new ProcessStartInfo("stats");
        pi.Arguments = @"C:\Users\10522\Desktop\spssJob1.spj -production";
        pi.WorkingDirectory = @"C:\Program Files\IBM\SPSS\Statistics\22";
        pi.UseShellExecute = false;
        Process.Start(pi);

您可以通过更改ProcessStartInfo的属性来实现。

不确定什么是统计数据,如果它是一个exe,则可以指定完整的exe路径,而只是省略工作目录。

答案 1 :(得分:0)

  var p = new Process();
                    p.StartInfo = new ProcessStartInfo("stats")
                    {
                        //UseShellExecute = false,
                        Arguments= @"C:\Users\10522\Desktop\spssJob1.spj -production",
                        WorkingDirectory = @"C:\Program Files\IBM\SPSS\Statistics\22",
                    };
                    p.Start();
                    p.WaitForExit();