¿Por qué es Windows Vista de 64 bits usando un valor de 32 bits cmd.exe por defecto?(específicos de la máquina)

StackOverflow https://stackoverflow.com/questions/373351

Pregunta

La situación:

Necesito convertir nuestro actual entorno de desarrollo de 32 bits de Windows XP a Windows Vista de 64 bits (*).Naturalmente, me he topado con un montón de lugares en nuestro sistema donde codificado caminos eran problemáticos (por ejemplo,"C:\Program Files"convertirse "C:\Program Files (x86)").Afortunadamente, hay una %ProgramFiles% variable de entorno que se asigna al directorio adecuado, basándose en el origen del proceso (32-bit o 64-bit).Así que he actualizado los scripts de generación con %ProgramFiles%, y yo estaba seguro de que iba a ser el final de eso.

El entorno de compilación se llama desde la línea de comandos (C:\Windows\System32\cmd.exe).

El problema: En una máquina específica (es decir, mi dev máquina en el trabajo), resulta que C:\Windows\System32\cmd.exe es en realidad un proceso de 32 bits, por lo que las secuencias de comandos de encontrar el x86 la versión de la Program Files directorio y todo funciona de maravilla.

En cada máquina de 64 bits puedo encontrar (incluyendo a mi casa), C:\Windows\System32\cmd.exe es la versión de 64 bits y la versión de 32 bits se encuentra en C:\Windows\SysWow64\cmd.exe.Para la construcción de guiones no puede encontrar cualquier cosa que estés buscando y no.

Ahora entiendo que el de 32 bits cmd.exe se debe llamar explícitamente si es eso lo que necesitas, y por defecto, obtendrá un 64bit cmd.exe.Caso típico de WORKSFORME...

La pregunta es, ¿qué pasó con el equipo donde esta no es cierto?¿Por qué tengo una de 32 bits cmd.exe por defecto en una máquina, pero no en otros?En todos los casos estoy explícitamente la ejecución de C:\Windows\System32\cmd.exe a partir de la Start|Run menú pero conseguir resultados diferentes en una máquina sólo.Todos se están ejecutando en la misma edición de la Vista de 64 bits.

Cualquier pensamiento o una idea?

(*) Por favor, acepte que yo debe de hacer esto.No estoy en libertad de decir por qué Estoy haciendo esto.Re-instalar el sistema operativo y todo desde cero, probablemente, podría funcionar, pero sin duda es una exageración.Además, fue bastante difícil convencer a nuestro departamento de IT para dar máquinas de la Vista!

¿Fue útil?

Solución 2

Por fin he encontrado el problema, y como se esperaba, es bastante simple:error de usuario.Explorer (que en sí es un proceso de 64 bits en Windows Vista 64-bit) lanza de 64 bits de comandos por defecto.Si desea una versión de 32 bits CMD.EXE, debe hacer referencia explícitamente C:\Windows\SysWoW64\CMD.EXE.

La razón de esto funcionó muy bien en mi sistema es que yo uso el Far Manager para la mayoría de los de mi línea de comandos de uso, que es de 32 bits (por lo tanto, el lanzamiento de 32 bits indicadores de comando).Cuando he comprobado que debo haber confundido una ventana de 32 bits para una de 64 bits de la ventana (después de que todos ellos tienen el mismo aspecto!) y le pidió a una pregunta estúpida.

Morir en Sente, el problema con %ProgramFiles(x86)% es que no existe en Windows Vista de 32 bits, porque eso hubiera sido realmente sencillo.

Ah, no hay nada como una publicación pública para hacer un tonto de ti mismo...:)

Otros consejos

Si ejecutó CMD de un proceso de 32 bits, se obtendría el cmd de 32 bits debido a la redirección de archivos ( http://msdn.microsoft.com/en-us/library/aa384187.aspx ). Qué se obtiene la versión de 32 bits de CMD cuando se ejecuta desde el Explorador?

cmd.exe es lanzado desde el menú de Inicio en ambas máquinas. repro exacta:

  • Haga clic en el orbe de inicio
  • Tipo "cmd", sólo un partido se acerca (c:\windows\system32\cmd.exe)
  • lanzarlo.

En mi máquina de trabajo, se pone en marcha la versión de 32 bits (como se demuestra por el Administrador de tareas, se ha *32 añadido al nombre de la ficha Processes). En todos los demás Vista 64 máquinas que he probado, este lanza la versión de 64 bits de cmd, y no puedo encontrar una explicación racional para este comportamiento.

No he comprobado si explorer.exe sí era 32 o 64 bits en la máquina afectada, tal vez esto está relacionado ... Gracias por la pista.

En lugar de %ProgramFiles%, no hay un %Programfiles(x86)% que siempre va donde quiere, independientemente de lo que se está ejecutando cmd.exe? Mis sistemas con Windows XP de 64 bits que tienen todos; discúlpame por no tomarse el tiempo para arrancar un sistema Vista.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top