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)
| | | |-+  Error al ejecutar bat desde un programa en c#
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Error al ejecutar bat desde un programa en c#  (Leído 1,733 veces)
kaiserdj

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Error al ejecutar bat desde un programa en c#
« en: 25 Marzo 2018, 15:37 pm »

Buenas tengo el siguiente bat, que ejecuto directamente y funciona sin problemas:
Código:
FOR /F "skip=2 tokens=2*" %%A IN ('REG QUERY "HKLM\Software\JavaSoft\Java Runtime Environment" /v CurrentVersion') DO set CurVer=%%B
FOR /F "skip=2 tokens=2*" %%A IN ('REG QUERY "HKLM\Software\JavaSoft\Java Runtime Environment\%CurVer%" /v JavaHome') DO set JAVA_HOME=%%B
echo JAVA_HOME: %JAVA_HOME%
SET JAVA=%JAVA_HOME%\bin\javaw.exe
echo JAVA: %JAVA%
El problema surge cuando lo ejecuto desde un programa en c#, la funcion es la siguiente:
Código:
           string bat = System.IO.Path.Combine(Directory.GetCurrentDirectory(), "start.bat");

            string Xmx = this.textBox1.Text;
            string Xmn = this.textBox2.Text;
            string NAME = this.textBox3.Text;

            Process proc = null;
            proc = new Process();

            proc.StartInfo.FileName = bat;
            proc.StartInfo.Arguments = String.Format("{0} {1} {2}", Xmx, Xmn, NAME);
            proc.StartInfo.UseShellExecute = false;
            proc.StartInfo.CreateNoWindow = true;
            proc.StartInfo.WorkingDirectory = Path.GetDirectoryName(proc.StartInfo.FileName);
            proc.StartInfo.RedirectStandardOutput = true;
            proc.StartInfo.RedirectStandardError = true;
            proc.Start();

            string procOutput = proc.StandardOutput.ReadToEnd();
            string procError = proc.StandardError.ReadToEnd();

            TextWriter outputlog = new StreamWriter(System.IO.Path.Combine(Directory.GetCurrentDirectory(), "instancias\\pruebas\\.minecraft\\log.txt"));
            outputlog.Write(procOutput);
            outputlog.Close();

            TextWriter outputerror = new StreamWriter(System.IO.Path.Combine(Directory.GetCurrentDirectory(), "instancias\\pruebas\\.minecraft\\error.txt"));
            outputerror.Write(procError);
            outputerror.Close();
El log que proporciona al ejecutar desde el programa en c#:
Código:
SET BASE=.\
FOR /F "skip=2 tokens=2*" %A IN ('REG QUERY "HKLM\Software\JavaSoft\Java Runtime Environment" /v CurrentVersion') DO set CurVer=%B
FOR /F "skip=2 tokens=2*" %A IN ('REG QUERY "HKLM\Software\JavaSoft\Java Runtime Environment\" /v JavaHome') DO set JAVA_HOME=%B
echo JAVA_HOME:  
JAVA_HOME:
SET JAVA=\bin\javaw.exe
JAVA: \bin\javaw.exe
No se a que se debe que dejen de funcionar los FOR cuando este se ejecuta desde un programa en c#

El problema es que no se guarda la variable del directorio donde esta java instalado

Muchas gracias y un saludo


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ejecutar un programa en C desde otro programa en C « 1 2 »
Programación C/C++
mapers 10 27,352 Último mensaje 6 Abril 2011, 19:33 pm
por mapers
[Ayuda] ¿Cómo ejecutar otro programa desde mi programa de C#?
.NET (C#, VB.NET, ASP)
Zodiak98 1 6,025 Último mensaje 8 Diciembre 2013, 01:51 am
por Eleкtro
error ejecutar vbs desde tarea programada error el sistema no puede encontrar el
Scripting
binario010101 2 7,538 Último mensaje 1 Mayo 2014, 00:54 am
por binario010101
Error al ejecutar progrma desde un bat
Scripting
ADV 3 2,733 Último mensaje 5 Mayo 2017, 20:29 pm
por Eleкtro
Ejecutar programa desde java.
Java
aangrymasther 3 5,352 Último mensaje 10 Marzo 2018, 02:51 am
por rub'n
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines