我正在创建我的第一个NSI脚本,我只是想知道如果我可以从NSIS执行命令行命令还是应该执行批处理文件?我真的不知道从哪里开始,其他类似的话题已经超出了我的头脑。从NSIS执行命令行命令
回答
尝试使用exec
命令http://nsis.sourceforge.net/Docs/Chapter4.html:
4.9.1.2 Exec的
命令
执行指定的程序,并立即继续。请注意,指定的文件必须存在于目标系统上,而不是编译系统中。 $OUTDIR
用于工作目录。如果进程无法启动,则会设置错误标志。请注意,如果该命令可能有空格,则应将其放在引号中以便从参数中对其进行分隔。例如:Exec '"$INSTDIR\command.exe" parameters'
。如果不将它放在引号中,它将无法在Windows 9x上使用或不使用参数。
Exec '"$INSTDIR\someprogram.exe"'
Exec '"$INSTDIR\someprogram.exe" some parameters'
好吧,我希望能够从.nsi控制命令行并执行如下操作:“copy/b someprogram.exe + ,,”听起来像我需要从批处理文件中完成。 – user1457296 2012-07-16 22:18:13
你试过这个'Exec'cmd/k copy/b ...'吗? – zenpoy 2012-07-17 05:25:44
我建议看看nsExec插件。我刚刚遇到了一种情况,我需要从NSIS脚本中ping一台服务器,下面的代码对我来说非常合适。
nsExec::Exec '"C:\Windows\System32\PING.EXE" $URL'
使用nsExec的好处是,它可以在屏幕上弹出一个dos框而不执行任何命令。返回值被压入堆栈,并且有几种不同的方式可以访问程序的输出(如果存在的话)。
没有一大堆关于NSIS网站,我能找到的插件的信息,但下面的链接应该让你在正确的方向开始:
http://nsis.sourceforge.net/Docs/nsExec/nsExec.txt
编辑:
我注意到你特别询问了一个内部DOS命令的COPY命令,这意味着你将无法像执行ping操作那样执行它。我可能会误解,但你不应该使用任何外部程序来执行这样的基本命令。您应该能够使用NSIS命令复制大多数内部命令。
例如,要复制文件(或多个文件)使用NSIS命令:CopyFiles
的NSIS Scripting Reference是你的朋友:)(所以是按Ctrl + F)
只是正确的选项来执行应用程序而不显示命令提示符 – 2014-03-20 03:36:41
- 1. 使用NSIS执行命令
- 2. 从命令行执行Django Shell命令
- 3. 从Python执行命令行命令
- 4. 从Perl执行命令行命令?
- 5. 从命令行执行Powershell
- 6. 从JConsole执行命令行
- 7. 命令行命令的执行时间
- 8. C#运行命令不执行命令
- 9. 执行命令
- 10. 执行命令
- 11. 执行命令
- 12. 从Windows命令提示符执行命令可执行文件
- 13. 从nullsoft脚本安装系统(nsis)执行命令提示符命令。
- 14. 从java执行命令行工具因命令行而异?
- 15. 命令行命令命令
- 16. 从java执行adb命令
- 17. 从PowerShell执行命令
- 18. 从python执行shell命令
- 19. 从ADO.Net执行DBCC命令
- 20. 从Java执行shell命令
- 21. 执行killall命令从Java
- 22. 从Groovy执行unzip命令
- 23. 从ruby执行shell命令
- 24. 从Java执行cmd.exe命令
- 25. 执行命令从变量
- 26. 从vb.net执行CMD命令
- 27. 从php执行perl命令
- 28. 从VBS运行命令行和命令
- 29. 从命令行运行Adobe Fireworks命令
- 30. 从命令行运行vim命令
的【答案在这里(HTTP: //stackoverflow.com/a/10900198/62576)可能会有所帮助。它适用于命令行应用程序。 – 2012-07-16 19:18:04