Estoy seguro de que esto debe ser algo realmente fácil, pero parece que no puedo hacer que funcione. Digamos que tengo un archivo de script .fsx
y quiero hacer que se ejecute mediante programación. Supongo que alguien debe haber escrito sobre esto en algún momento, pero parece que no puedo encontrar un ejemplo que realice mi escenario simple. Básicamente, quiero duplicar programáticamente lo que sucede cuando haces clic con el botón derecho en un archivo .fsx
y eliges "Ejecutar con F # Interactive ..."F # ejecutando programáticamente el archivo de script .fsx
Respuesta
Como se le preguntó en un comentario, puede establecer UseShellExecute
en false para evitar que se abra el shell de Windows. De esta manera, usted puede tener su salida directamente en Fa # shell:
open System.Diagnostics
let execScript script =
let psi = new ProcessStartInfo(@"c:\Program Files\Microsoft F#\v4.0\Fsi.exe")
psi.Arguments <- script
psi.UseShellExecute <- false
let p = Process.Start(psi)
p.WaitForExit()
p.ExitCode
Gracias, eso soluciona un problema molesto en el fragmento de código que publiqué. :) – Beaker
Después de jugar aleatoriamente con la línea de comandos args finalmente lo conseguí. Me siento un poco cojo respondiendo mi propia pregunta, pero espero que todavía ayude a alguien más. Resultó que mi confusión era el uso correcto de los argumentos de la línea de comando. Si alguien tiene algo más elegante o generalmente útil que lo que puse, te otorgaré la respuesta.
open System.Diagnostics
let launchExecutable() =
let proc = new Process()
proc.StartInfo.FileName <- @"C:\Program Files (x86)\Microsoft F#\v4.0\fsi.exe"
proc.StartInfo.Arguments <- @"--exec --nologo pathToFSXFile\Test.fsx"
proc.Start()
launchExecutable();;
Me acabo de dar cuenta de que escribí launchExecutable en camel-case. Claramente, el estilo de programación funcional me está volviendo al lado oscuro de la fuerza. ;) – Beaker
- 1. Ejecutando el script R programáticamente
- 2. F #/C# - fsx Archivos de script y referencias de proyectos
- 3. F # para scripting: ubicación del archivo de script
- 4. ¿Cómo cargar el archivo de script F # externo y usarlo en F # interactive?
- 5. F #, espacios de nombres, módulos, fs y fsx
- 6. Inicie ipython ejecutando un script
- 7. Ejecutando un script de Groovy
- 8. Ejecutando un programa/script de QMake
- 9. ejecutando un script bash desde un archivo make
- 10. Ejecutando un script por lotes en el cierre de Windows
- 11. Ejecutando script bash desde java
- 12. ejecutando el comando de shell en el fondo del script
- 13. Hospedaje de scripts .fsx dentro de aplicaciones más grandes
- 14. Ejecutando rake desde el archivo por lotes
- 15. Ejecutando comandos de script después de SSH
- 16. Verifica programáticamente si se está ejecutando syncdb
- 17. Cualquier cosa después de DOS FOR/F ciclo no ejecutando
- 18. Ejecutando un script de Python usando Cron?
- 19. ejecutando un script de Powershell desde php
- 20. Ejecutando scipy's oneway anova en un script
- 21. ejecutando el script de shell sin llamar implícitamente a sh
- 22. Ejecutando git pull desde un script php
- 23. ejecutando un script R desde python
- 24. Escritura de pruebas para archivos de script en F #
- 25. ¿Cómo rastrear el script PHP ejecutando un proceso determinado?
- 26. ¿Cómo maneja MATLAB el cambio de archivo mientras se está ejecutando el archivo?
- 27. Eclipse está ejecutando el archivo Java incorrecto
- 28. Ejecutando el archivo .bat desde TeamCity
- 29. Ejecutando vbscript desde el archivo por lotes
- 30. Finalizando tail -f iniciado en un script de shell
Hay una discusión aquí en incrustar el intérprete FSI: http://stackoverflow.com/questions/1563024/embedding-f-interactive – sukru
Eso es un artículo interesante, pero demasiado serio para el escenario que estoy tratando de implementar. Gracias por mencionarlo. – Beaker