从C#运行命令

时间:2014-07-19 16:56:46

标签: c#

最糟糕的话题但不能说得多。

事情是,我正在尝试从cmd运行某个命令,如果我在Windows中正常执行此操作,它是完美的,在C#中它不起作用,即使它是完全相同的字符串。

我是这样做的:

        Process cwebp = new Process();
        cwebp.StartInfo.FileName=("cmd.exe");
       cwebp.StartInfo.Arguments = Settings.EncoderSettings[0];
       cwebp.Start();

好的论点几乎都是,例如:

opusenc - 比特率100 input.wav output.opus

这里有什么根本问题吗? 一直在搜索,找不到任何信息,一切都说(使用Arguments),而且我这样做,并且它没有按预期工作。

2 个答案:

答案 0 :(得分:5)

除了Steve的回答,您可以直接启动命令,而不首先使用cmd

Process.Start("opusenc", "--bitrate 100 input.wav output.opus");

答案 1 :(得分:2)

要执行shell命令,您需要在参数行

上添加参数/ C(/ K)
 Process cwebp = new Process();
 cwebp.StartInfo.FileName=("cmd.exe");
 cwebp.StartInfo.Arguments = "/C " + Settings.EncoderSettings[0];
 cwebp.Start();

没有它,Process.Start方法启动cmd命令处理器,但是,这个,立即退出而不处理传递的参数。