袁箫剑 2021-11-08 08:36 采纳率: 100%
浏览 73
已结题

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条回答 默认 最新

  • CSDN专家-showbo 2021-11-08 09:15
    关注

    可以用Process执行ffmpeg,然后等待结束,要不就算可以用线程暂停当前代码执行,但是等待时间不好确定

    using System;
    using System.Diagnostics;
    namespace ConsoleApp1
    {
        class Program
        {
            static void Main(string[] args)
            {
                Process p = new Process();
                p.StartInfo.UseShellExecute = false;
                p.StartInfo.WorkingDirectory = "D:\\BaiduNetdiskDownload\\Titanic - 副本\\";
                p.StartInfo.FileName = p.StartInfo.WorkingDirectory+"ffmpeg.exe";//注意修改ffmpeg路径,这里是将ffmpeg放到和mp4目录下了
                p.StartInfo.Arguments = "-i 1.mp4 -ss 00:26:56 -to 00:26:59 -c copy d1.mp4";
                p.Start();
                p.WaitForExit();////////等待转换完毕
                p.Close();
                p.Dispose();
    
            }
        }
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月16日
  • 已采纳回答 11月8日
  • 创建了问题 11月8日

悬赏问题

  • ¥15 PointNet++的onnx模型只能使用一次
  • ¥20 西南科技大学数字信号处理
  • ¥15 有两个非常“自以为是”烦人的问题急期待大家解决!
  • ¥30 STM32 INMP441无法读取数据
  • ¥15 R语言绘制密度图,一个密度曲线内fill不同颜色如何实现
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧,别用大模型回答,大模型的答案没啥用
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。