elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Alguien me puede ayudar?Necesito ejecutar desde c# un .bat y pasarle una línea d
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Alguien me puede ayudar?Necesito ejecutar desde c# un .bat y pasarle una línea d  (Leído 9,240 veces)
ssmateos

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Alguien me puede ayudar?Necesito ejecutar desde c# un .bat y pasarle una línea d
« en: 2 Marzo 2016, 08:19 am »

Buenos días!
tengo un .bet,  ff-prompt.bat, en el que ejecuto la línea de código "ffmpeg -i Wildlife.wmv -qscale 4 -vcodec mjpeg -acodec pcm_s16le salida.avi" y me convierte el "wildlife.wmv a avi, pero lo que entendí e hice en código no hace absolutamente nada:

Código
  1. ProcessStartInfo startInfo = new ProcessStartInfo("D:\\..\\ffmpeg\\ff-prompt.bat");
  2.            startInfo.WindowStyle = ProcessWindowStyle.Minimized;
  3.            startInfo.UseShellExecute = false;
  4.            startInfo.RedirectStandardInput = true;
  5.  
  6.            startInfo.Arguments = "ffmpeg -i Wildlife.wmv -qscale 4 -vcodec mjpeg -acodec pcm_s16le salida.avi";
  7.  
  8.            Process.Start(startInfo);

alguien sabe por qué??? hay forma de hacerlo???

Mil gracias de antemano! Soy nueva con estas cosas!


« Última modificación: 2 Marzo 2016, 11:42 am por Eleкtro » En línea

Meta


Desconectado Desconectado

Mensajes: 3.438



Ver Perfil WWW
Re: Alguien me puede ayudar?Necesito ejecutar desde c# un .bat y pasarle una línea d
« Respuesta #1 en: 2 Marzo 2016, 08:22 am »

Hola:

Hay respuestas por aquí.

Un cordial saludo.


En línea

ssmateos

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: Alguien me puede ayudar?Necesito ejecutar desde c# un .bat y pasarle una línea d
« Respuesta #2 en: 2 Marzo 2016, 09:08 am »

pues el caso es que lo pregunté yo misma y no me quedó nada claro, así que seguí intentándolo aquí!

:) pero gracias por hacerme caso igualmente...ya no sé donde mirar!
En línea

Meta


Desconectado Desconectado

Mensajes: 3.438



Ver Perfil WWW
Re: Alguien me puede ayudar?Necesito ejecutar desde c# un .bat y pasarle una línea d
« Respuesta #3 en: 2 Marzo 2016, 10:13 am »

Hola:

¿Exactamente que hace lo que buscas?

Puedes traducir del bat a C# para que haga lo mismo.

Saludos.
En línea

ssmateos

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: Alguien me puede ayudar?Necesito ejecutar desde c# un .bat y pasarle una línea d
« Respuesta #4 en: 2 Marzo 2016, 10:31 am »

Hola,
es un bat que descargué para convertir videos, y ejecuta un exe que tiene en la carpeta bin, el ffmpeg.exe, pasándole los argumentos que puse (-i -i Wildlife.wmv -qscale 4 -vcodec mjpeg -acodec pcm_s16le salida.avi) pero probé con el process y no debo hacerlo bien, se abre prompt una decima de seg pero no hace nada.  esto es el bat:
Código
  1. @ECHO OFF
  2. REM FF Prompt 1.2
  3. REM Open a command prompt to run ffmpeg/ffplay/ffprobe
  4. REM Copyright (C) 2013-2015  Kyle Schwarz
  5.  
  6. TITLE FF Prompt
  7.  
  8. IF NOT EXIST bin\ffmpeg.exe (
  9.  CLS
  10.  ECHO bin\ffmpeg.exe could not be found.
  11.  GOTO:error
  12. )
  13.  
  14. CD bin || GOTO:error
  15. PROMPT $P$_$G
  16. SET PATH=%CD%;%PATH%
  17. CLS
  18. ffmpeg -version
  19. ECHO For help run: ffmpeg -h
  20. ECHO For formats run: ffmpeg -formats ^| more
  21. ECHO For codecs run: ffmpeg -codecs ^| more
  22. ECHO Current directory is now: "%CD%"
  23. ECHO The bin directory has been added to PATH
  24.  
  25. CMD /Q /K
  26. GOTO:EOF
  27.  
  28. :error
  29. ECHO Press any key to exit.
  30. GOTO:EOF
« Última modificación: 2 Marzo 2016, 11:43 am por Eleкtro » En línea

Slava_TZD
Wiki

Desconectado Desconectado

Mensajes: 1.466

♪ [8675309] ♪


Ver Perfil WWW
Re: Alguien me puede ayudar?Necesito ejecutar desde c# un .bat y pasarle una línea d
« Respuesta #5 en: 2 Marzo 2016, 11:51 am »

Código
  1. var startInfo = new ProcessStartInfo {
  2. FileName = @"ff-prompt.bat",
  3. RedirectStandardInput = true,
  4. UseShellExecute = false,
  5. CreateNoWindow = false
  6. };
  7. var proc = new Process { StartInfo = startInfo };
  8. proc.Start ();
  9. proc.StandardInput.WriteLine (@"ffmpeg blablabalablabal");
  10. //proc.StandardInput.WriteLine ("exit");
  11. proc.WaitForExit ();
« Última modificación: 2 Marzo 2016, 13:08 pm por Slava_TZD » En línea


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.
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: Alguien me puede ayudar?Necesito ejecutar desde c# un .bat y pasarle una línea d
« Respuesta #6 en: 2 Marzo 2016, 11:54 am »

El script de batch que has mostrado de por si no hace absolutamente nada, simplemente comprueba si existe el ffmpeg, muestra la version, y por último abre una nueva instancia de la CMD... ¿te ha faltado algo por copiar?.

No le puedes pretender pasar argumentos a un script que no toma ningún argumento, tan simple como eso, eso sería el problema, ahora bien, no necesitas usar un script de Batch desde un lenguaje como C#, puedes utilizar la Class Process para iniciar el proceso FFMPEG directamente pasándole los argumentos que desees:

Código
  1. Process p = new Process();
  2.  
  3. p.StartInfo.FileName = "...\\FFMPEG.exe";
  4. p.StartInfo.Arguments = "-i \"Wildlife.wmv\" -qscale 4 -vcodec mjpeg -acodec pcm_s16le \"salida.avi\"";
  5.  
  6. p.Start();
  7. p.WaitForExit();

EDITO: Ah, creo que lo entendí mal, ¿lo que querías era escribir el input directamente en la instancia de la CMD que abre el script de Batch?, en ese caso la solución de @Slava_TZD te debería servir, la mia es para iniciar directamente el proceso FFMPEG con los argumentos.

Saludos!
« Última modificación: 2 Marzo 2016, 12:00 pm por Eleкtro » En línea

ssmateos

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: Alguien me puede ayudar?Necesito ejecutar desde c# un .bat y pasarle una línea d
« Respuesta #7 en: 2 Marzo 2016, 11:55 am »

voy a probar! mil gracias, que majos madre!  ;-) ;-) ;-)
En línea

Meta


Desconectado Desconectado

Mensajes: 3.438



Ver Perfil WWW
Re: Alguien me puede ayudar?Necesito ejecutar desde c# un .bat y pasarle una línea d
« Respuesta #8 en: 2 Marzo 2016, 12:01 pm »

voy a probar! mil gracias, que majos madre!  ;-) ;-) ;-)

Después de tanto sufrimiento que te vi en los foros de MSDN te veo contento. Nos avisa si te ha funcionado.

Leí hace tiempo que la competencia del .bat de CMD es el .vbs Visual Basic Script, luego hay otros más y el más que usan ahora en empresas es el F#. Aquí encontré una respuesta que hicieron hace tiempo.

Nos avisa y nos muestra tu resultado.

Suerte...
En línea

ssmateos

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: Alguien me puede ayudar?Necesito ejecutar desde c# un .bat y pasarle una línea d
« Respuesta #9 en: 2 Marzo 2016, 12:15 pm »

 :-( :-( :-(

que desesperacion, se ejecuta pero no hace absolutamente nada....
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines