Variables de entorno
Publicado por Mendizalea (14 intervenciones) el 04/03/2019 16:53:47
Buenas tardes,
Tengo una pequeña aplicación el cual tiene opcion de ejecutar un batch pulsando un boton (llamada directa al archivo):
El problema que me surge es en los sistemas operativos de 64 bits. Dentro del batch, se hace uso de la variable de entorno de windows %programfiles%.
Si compilo como Any CPU a la hora de ejecutar en un 64 bits el batch, la variable %programfiles% me devuelve C:\Program Files (x86), con el problema de que no ecuentra en fichero en cuestion.
Si en cambio, compilo como x64 me da la ruta correcta C:\Program Files
Y la correcta deberia de ser la segunda,C:\Program Files
Tengo una pequeña aplicación el cual tiene opcion de ejecutar un batch pulsando un boton (llamada directa al archivo):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Process proc = null;
try
{
string batDir = string.Format(@"C:\Batch");
proc = new Process();
proc.StartInfo.WorkingDirectory = batDir;
proc.StartInfo.FileName = "hola.cmd";
proc.StartInfo.CreateNoWindow = false;
proc.Start();
proc.WaitForExit();
MessageBox.Show("Bat file executed !!");
}
catch (Exception ex)
{
MessageBox.Show(ex.StackTrace.ToString());
}
El problema que me surge es en los sistemas operativos de 64 bits. Dentro del batch, se hace uso de la variable de entorno de windows %programfiles%.
Si compilo como Any CPU a la hora de ejecutar en un 64 bits el batch, la variable %programfiles% me devuelve C:\Program Files (x86), con el problema de que no ecuentra en fichero en cuestion.
Si en cambio, compilo como x64 me da la ruta correcta C:\Program Files
Y la correcta deberia de ser la segunda,C:\Program Files
Valora esta pregunta
0