袁箫剑
2021-11-08 08:36
采纳率: 100%
浏览 53

c#执行cmd.exe是有的命令并未完全执行。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace cmdCreate
{
    class Program
    {
        static void Main(string[] args)
        {
            var p = new Process();
            p.StartInfo.FileName = "cmd.exe";
            p.StartInfo.UseShellExecute = false;
            p.StartInfo.CreateNoWindow = true;
            p.StartInfo.RedirectStandardOutput = true;
            p.StartInfo.RedirectStandardInput = true;
            p.Start();

            p.StandardInput.WriteLine("cd D:\\BaiduNetdiskDownload\\Titanic - 副本");
            p.StandardInput.WriteLine("ffmpeg -i 1.mp4 -ss 00:26:56 -to 00:26:59 -c copy d1.mp4");
            p.StandardInput.WriteLine("exit");
            
            p.StandardInput.Flush();

            
        }
    }
}

确实执行了cmd命令,没有报错。但是“p.StandardInput.WriteLine("ffmpeg -i 1.mp4 -ss 00:26:56 -to 00:26:59 -c copy d1.mp4");”这一步生成的文件是损坏的,程序貌似并没有给第二条命令足够的执行时间,因为我在cmd上打这条命令它需要执行10秒,但是在c#上边瞬间就完成了。

2条回答 默认 最新

相关推荐 更多相似问题