Alguien me puede ayudar?Necesito ejecutar desde c# un .bat y pasarle una línea d

Iniciado por ssmateos, 2 Marzo 2016, 08:19 AM

0 Miembros y 1 Visitante están viendo este tema.

Meta

Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

ssmateos

Intenté con vuestras dos respuestas, y lo mismo en ambas...sale fugazmente el prompt pero no hace nada, de hecho si lo hago a mano tarda unos segundos en convertirlo.

Que se me está pasando???? Voy a empezar a soñar con esto! jajaja

Mil gracias por la ayuda, la desesperación compartida es más llevadera

Slava_TZD



The fact is, even if you were to stop bombing us, imprisoning us, torturing us, vilifying us, and usurping our lands, we would continue to hate you because our primary reason for hating you will not cease to exist until you embrace Islam.

ssmateos

claro, disculpa!!! yo lo pego pero es básicamente lo que me aconsejásteis, soy una novata con estas cosas, lo que hice siempre fue en kentico que no va a tan bajo nivel!:


        private void btnconvertir_Click(object sender, EventArgs e)
        {
            //Process p = new Process();

            //p.StartInfo.FileName = "D:\\Users\\sara.sanchez\\Desktop\\pruebasAntonio\\ffmpeg\\bin\\FFMPEG.exe";
            //p.StartInfo.Arguments = "-i \"Wildlife.wmv\" -qscale 4 -vcodec mjpeg -acodec pcm_s16le \"salida.avi\"";
            ////ffmpeg -i Wildlife.wmv -qscale 4 -vcodec mjpeg -acodec pcm_s16le salida.avi"
            //p.StartInfo.WindowStyle = ProcessWindowStyle.Minimized;
            //p.StartInfo.UseShellExecute = false;
            //p.StartInfo.RedirectStandardInput = true;
            //p.Start();
            //p.WaitForExit();

            var startInfo = new ProcessStartInfo
            {
                FileName = @"D:\\Users\\sara.sanchez\\Desktop\\pruebasAntonio\\ffmpeg\\ff-prompt.bat",
                RedirectStandardInput = true,
                UseShellExecute = false,
                CreateNoWindow = false
            };
            var proc = new Process { StartInfo = startInfo };
            proc.Start();
            proc.StandardInput.WriteLine(@"ffmpeg -i Wildlife.wmv -qscale 4 -vcodec mjpeg -acodec pcm_s16le salida.avi");
                   
            proc.WaitForExit();
        }

probé tanto lo comentado como lo que no, e igual...

Slava_TZD

@"C:\asd" = "C:\\asd" String literals

Para que el ejemplo funcione sin estar en el mismo directorio, aparte de corregir lo anterior en tu código tienes que modificar el .bat, concretamente estas líneas IF NOT EXIST bin\ffmpeg.exe, CD bin y poner el path completo.

Código (csharp) [Seleccionar]
FileName = @"C:\path\to\ff-prompt.bat"
Código (batch) [Seleccionar]
IF NOT EXIST C:\path\to\bin\ffmpeg.exe
Código (batch) [Seleccionar]
CD C:\path\to\bin


The fact is, even if you were to stop bombing us, imprisoning us, torturing us, vilifying us, and usurping our lands, we would continue to hate you because our primary reason for hating you will not cease to exist until you embrace Islam.

ssmateos

Nada, quité la @ del argumento y modifiqué el .bat con la ruta completa y nada...