¿Cómo enviar series de comandos a un proceso de ventana de comandos?

Tenemos algunos comandos (archivos por lotes / ejecutables) en nuestra ruta de red a los que tenemos que llamar para inicializar nuestro 'entorno de desarrollo' para esa ventana de comandos. Establece algunas variables ambientales, agrega cosas a la ruta, etc. (Entonces solo se reconocerán los comandos de trabajo que escribamos y no sé qué hay dentro de esos comandos de inicialización)

Ahora mi problema es que quiero llamar a una serie de esos 'comandos de trabajo' usando un programa C #, y ciertamente, funcionarán solo si se realiza la configuración inicial. ¿Cómo puedo hacer eso? Actualmente, estoy creando un archivo por lotes desde cero del programa como este, por ejemplo:

file.Writeline("InitializationStep1.bat")
file.Writeline("InitializeStep2.exe")
file.Writeline("InitializeStep3.exe")

Entonces los comandos reales

file.Writeline("Dowork -arguments -flags -blah -blah")
file.Writeline("DoMoreWork -arguments -flags -blah -blah")

Luego, finalmente cierre el escritor de archivos y ejecute este archivo por lotes.

Ahora si ejecuto esto directamente usandoProcess.<strike>Run</strike>Start("cmd.exe","Dowork -arguments"); No correrá.

¿Cómo puedo lograr esto de una manera más limpia, de modo que tenga que ejecutar los comandos de inicialización solo una vez? (Podría corrercmd.exe cada vez con los tres inicializadores, pero toman mucho tiempo, así que quiero hacerlo solo una vez)

Respuestas a la pregunta(2)

Su respuesta a la pregunta