2012-02-11 65 views
5

He creado un archivo compile.bat y run.bat, pero cuando hago doble clic en ellos, se ejecutan en el indicador de Windows cmd en lugar del indicador de cmd de VS.Ejecutar el archivo .bat en el indicador de VS cmd

Esto es lo que tengo en mi archivo compile.bat:

devenv FileMgr.sln/reconstrucción de depuración
pausa

La cmd de Windows dice "'devenv no se reconoce como un comando interno o externo , programa operable o archivo por lotes ".

Respuesta

8

Si no recuerdo mal, todo el símbolo del sistema de Visual Studio es un script por lotes que inicializa las rutas y las variables de entorno. Entonces, si simplemente llama a esa secuencia de comandos por lotes en la parte superior de la suya, tendrá todas esas configuraciones para su secuencia de comandos.

Según this question, MSVC 2008 tiene ese archivo por lotes aquí:

llamada "C: \ Archivos de programa \ Microsoft Visual Studio 2008 \ VC \ vcvarsall.bat

Puede que no sea exactamente de la misma lugar, pero debe ser algo similar en su máquina.

+0

¡Gracias, funcionó! – jbisa

+0

@jbisa Me alegro de ser de ayuda. ¿Puedes marcarlo como respondido? –

+0

Lo haría, pero necesito estar en 15 reputación. Además, por alguna razón ya no se está compilando desde el archivo .bat. Ahora recibo el siguiente error: No se puede determinar la ubicación de la carpeta VS Common TOols. 'devenv' no se reconoce como un comando interno o externo, programa operable o archivo por lotes. Funcionó una vez, no estoy seguro de por qué no lo es ahora. – jbisa

1

El indicador cmd de VS establece algunas variables de entorno adicionales y agrega datos a las existentes (por ejemplo, la variable PATH). Puede considerar agregar la ruta de devenv a su ruta normal.

+0

Bien, entonces ¿debería ir a Propiedades del sistema -> Avanzado -> Variables de entorno y luego cambiar la variable "Ruta" a la ruta devenv? – jbisa

+1

¡Agréguelo al camino, no sobrescriba! Si sobrescribe, es probable que tenga problemas graves después. La solución de Tyler Gill es otra manera sin cambiar las propiedades de su sistema. – Sascha

+0

La solución de Tyler Gill funcionó, ¡gracias por su ayuda también! – jbisa

2

necesita devenv.exe a estar presente en el lugar donde su compile.bat está en marcha. por favor, busque en solución dada aquí-

Simplemente escriba devenv.exe del co línea mmand Si recibe un mensaje como este, entonces no tiene devenv.exe en su camino. >>> 'devenv.exe' no se reconoce como un comando interno o externo, programa operable o archivo por lotes. >>> Para solucionar esto simplemente ejecute el archivo por lotes, vsvars32.bat que viene con Visual Studio.NET desde la línea de comandos en la carpeta de trabajo. Después de ejecutar este archivo por lotes, devenv.exe estará disponible desde la línea de comandos en esa carpeta.

http://windowsclient.net/blogs/faqs/archive/2006/05/26/how-do-i-start-visual-studio-from-the-command-line.aspx

Por lo general se copia el devenv.exe manualmente a la ubicación donde se guarda mi bat.

0

Se puede especificar la ruta completa de devenv.exe:

C:\Program Files (x86)\Microsoft Visual Studio 8\Common7\IDE\devenv.exe FileMgr.sln /rebuild debug

Pero su archivo por lotes no será portable a otras máquinas/IDE.

+0

Ejecuté esto en el archivo compile.bat una vez, y ahora cada vez que ejecuto compile.bat (incluso con la línea superior fuera del archivo), VS abre mi solución FileMgr. ¿Hay alguna manera en que pueda hacer que la compilación ocurra en la ventana de cmd sin tener una nueva solución abierta? – jbisa

+0

http://msdn.microsoft.com/en-us/library/b20w810z(v=vs.80).aspx – Ajay

Cuestiones relacionadas