Estoy creando mi primer script NSI y me pregunto si puedo ejecutar un comando de línea de comando desde NSIS o ¿debería ejecutar un archivo por lotes? Realmente no sé por dónde empezar y otros temas similares me han pasado un poco por la cabeza.Ejecutar comando de línea de comando desde NSIS
Respuesta
Trate de usar exec
comando http://nsis.sourceforge.net/Docs/Chapter4.html:
4.9.1.2 Exec
comando
ejecutar el programa especificado y continuar inmediatamente. Tenga en cuenta que el archivo especificado debe existir en el sistema de destino, no en el sistema de compilación. $OUTDIR
se utiliza para el directorio de trabajo. El indicador de error se establece si el proceso no se pudo iniciar. Tenga en cuenta que si el comando puede tener espacios, debe ponerlo entre comillas para delimitarlo de los parámetros. por ejemplo: Exec '"$INSTDIR\command.exe" parameters'
. Si no lo pone entre comillas, no funcionará en Windows 9x con o sin parámetros.
Exec '"$INSTDIR\someprogram.exe"'
Exec '"$INSTDIR\someprogram.exe" some parameters'
bien, esperaba poder controlar la línea de comando desde .nsi y hacer algo como esto: "copy/b someprogram.exe +" Parece que tendré que hacerlo desde un archivo por lotes. – user1457296
¿has probado este 'Exec' cmd/k copy/b ... '? – zenpoy
Recomendaría echarle un vistazo al complemento nsExec. Hace poco tuve una situación en la que necesitaba hacer ping a un servidor desde un script de NSIS, y el siguiente código funcionó perfectamente para mí.
nsExec::Exec '"C:\Windows\System32\PING.EXE" $URL'
La ventaja de utilizar nsExec es que se ejecuta el comando sin hacer un cuadro de dos pop-up en la pantalla. El valor de retorno se inserta en la pila, y hay un par de formas diferentes en las que también se puede acceder a la salida del programa (si existe).
No hay una gran cantidad de información sobre el plugin en el sitio web NSIS que he podido encontrar, pero el siguiente enlace debe empezar en la dirección correcta:
http://nsis.sourceforge.net/Docs/nsExec/nsExec.txt
Editar:
Me di cuenta de que me ha preguntado específicamente sobre un comando COPY que es un comando interno de DOS, lo que significa que no podrá ejecutarlo como hice con ping. Puede que me equivoque, pero no debería necesitar usar ningún programa externo para llevar a cabo comandos básicos como este. Debería poder replicar la mayoría de los comandos internos usando comandos NSIS.
por ejemplo, para copiar un archivo (o varios archivos) utilizar el comando NSIS: CopyFiles
El NSIS Scripting Reference es su amigo :) (Así es Ctrl + F)
Simplemente la opción correcta para ejecutar una aplicación sin mostrar el símbolo del sistema –
- 1. Ejecutar el comando de línea de comando interactivo usando C#
- 2. Ejecutar un comando de línea de comandos desde CruiseControl.NET
- 3. ejecutar la aplicación de línea de comando interactiva desde java
- 4. Ejecutar el comando vim desde la línea de comandos
- 5. ¿Cómo ejecutar el código PHP desde la línea de comando?
- 6. No se puede ejecutar git desde la línea de comando
- 7. Ejecutar script SQL desde la línea de comando
- 8. ¿Cómo ejecutar Matlab desde la línea de comando?
- 9. no se puede ejecutar swing desde la línea de comando
- 10. Cómo ejecutar TestNG desde la línea de comando
- 11. Ejecutar un comando dentro de Vim desde la línea de comando
- 12. ¿Cómo puedo ejecutar un comando de línea de comando desde un programa en C++
- 13. Visual Studio. Publicar proyecto desde la línea de comando
- 14. Entrada desde la línea de comando
- 15. instrucción sqlplus desde la línea de comando
- 16. Mover archivos desde la línea de comando
- 17. Ejecutar línea de comando a través de php?
- 18. Ejecutar el comando CMD desde el código
- 19. Java ejecutar el programa de línea de comando
- 20. ¿Cómo puedo emitir un solo comando desde la línea de comando a través de sql plus?
- 21. Ejecutar línea de comandos y devolver la salida del comando
- 22. línea de comando TortoiseSVN diff
- 23. Ejecutar comando de administración personalizada desde la vista
- 24. Ejecutar archivo jar con argumentos de línea de comando
- 25. Línea de comando diff utilidad
- 26. Ejecutar el comando de administración Python/Django desde UnitTest/WebTest
- 27. Quiero ejecutar el archivo de caso de prueba de Selenium desde la línea de comando
- 28. ¿Es posible publicar un FLA desde la línea de comando?
- 29. Línea de comando de Maven
- 30. Error de punto de entrada al ejecutar el script PHP desde la línea de comando
El [respuesta aquí] (http: //stackoverflow.com/a/10900198/62576) podría ayudar. Funciona para una aplicación de línea de comandos muy bien. –