Estoy usando Visual Studio 2010 en Windows 7 64-bits.
He encontrado una solución que es mejor para mi gusto, yo soy el encadenamiento de comandos junto con && ^
, por ejemplo, la edición de mi archivo xml .vcxproj así:
<PreBuildEvent>
<Command>echo "hello 1" &&^
echo "hello 2" &&^
echo "hello 3"</Command>
<Message>Performaing pre-build actions ...</Message>
</PreBuildEvent>
he encadenado tres comandos juntos. El '& &' le dice al shell que deje de ejecutarse si el comando anterior se equivoca.
Nota, en el archivo .xml, uno no puede usar &&
directamente, entonces '& amp; & amp; ' se debe utilizar en su lugar. También tenga en cuenta el uso del carácter ^
, este es el carácter de continuación de línea del intérprete cmd (como el carácter \
de BASH).
Cada nuevo comando debe comenzar al principio de la línea. Usando este enfoque, uno puede encadenar tantos comandos como uno desee, pero si alguno falla, el resto de la cadena no se ejecutará.
Aquí es mi caso de uso real, estoy realizar algunas comprobaciones del entorno con un script en Python, seguido de la copia de archivo de depuración de mi encabezado precompilado en el directorio de otro sub-proyecto:
<PreBuildEvent>
<Command>C:\Python27\python.exe "$(SolutionDir)check_path.py" 32 &&^
copy "$(SolutionDir)h1ksim_lib\vc$(PlatformToolsetVersion).pdb" "$(IntDir)" /-Y > nul</Command>
<Message>Performaing pre-build actions ...</Message>
</PreBuildEvent>
El uso > nul
en el comando de copia impide cualquier salida a aparecer en la ventana de construcción, por lo que mis compañeros de equipo no conseguirá asustado cuando dice 0 file(s) copied.
referencia a compartir encabezados precompilados entre los sub-proyectos está aquí:
Sharing precompiled headers between projects in Visual Studio
En VS2008 no funcionó poner múltiples archivos CMD en líneas separadas. VS solo llamó al primer script en compilación. Agregué CALL en frente de cada línea y luego todo funcionó. –
¿Por qué estas órdenes 'call' preguntas? Ver [aquí] (https://msdn.microsoft.com/en-us/library/ms165412.aspx). – Pascal