最糟糕的话题但不能说得多。
事情是,我正在尝试从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),而且我这样做,并且它没有按预期工作。
答案 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命令处理器,但是,这个,立即退出而不处理传递的参数。