问题原因:工作中,在一个nsi的安装脚本文件中需要安装虚拟摄像头驱动,安装驱动脚本是.bat文件。使用nsi的execwait函数执行.bat文件时会显示dos窗口。但是领导要求不能显示dos窗口。

解决方法一:思路是看看bat脚本命令本身有没有隐藏dos方法。但是没有找到。后来发现可用用.vbs文件调用来隐藏。

创建一个.vbs文件,写入:createobject ("wscript.shell").run "a.bat",1,TRUE。使用.vbs文件来调用bat文件。windows下执行时可以隐藏窗口的。但是发现在nsi脚本无法执行.vbs文件。

所有方法一失败了。

方法二:查看nsi本身带有的exec执行函数。

网上查看到有

1、ExecWait "$INSTDIR\nsis.bat"                                           //可以等待          不可以隐藏窗口

2、nsExec::Exec "$INSTDIR\nsis.bat"                                     //可以等待          可以隐藏窗口

3、ExecShell Open "$INSTDIR\nsis.bat" "" SW_HIDE             // 不可以等待     可以隐藏窗口

4、ExecCmd::exec "$INSTDIR\nsis.bat"                                  // 不可以等待     可以隐藏窗口  ( Pop $0、 ExecCmd::wait $0  等待)

我们需要等待bat文件返回,而且要隐藏窗口,那么可以用第二个 nsExec::Exec函数。

nsExec::Exec函数是个nsis的nsExec.dll插件中的方法。所有需要在脚本文件中添加插件。

添加方法是

!addplugindir Plugins //添加nsis程序中附带的插件库目录

nsExec::Exec '${VCAM_INSTALL}'   //执行相关的.bat文件 VCAM_INSTALL是个.bat文件的完整路径变量。

好了,这样就不会显示dos窗口了。

bat nsis 无法执行_nsi脚本中执行.bat文件要隐藏dos窗口问题相关推荐

  1. shell脚本中执行 source /etc/profile 或者 source ~/.bashrc 不能生效的原因

    执行脚本时,其中的命令是在一个子shell中执行的.子shell继承了父shell的环境变量,但无法修改他们,或者说所做的修改仅对子shell有效.所以当shell脚本执行完后,到了回到shell命令 ...

  2. 在 Shell 脚本中执行语法检查调试模式

    文章目录 shell 脚本调试系列 概述 启用 verbose 调试模式 在 Shell 脚本中启用语法检查调试模式 通过修改脚本的首行来启用脚本检查 内置的 set 命令来在脚本中启用调试模式 sh ...

  3. 命令行执行php脚本中的$argv和$argc配置方法

    这篇文章主要介绍了命令行执行php脚本 中$argv和$argc的方法,本文给大家介绍的非常详细,需要的朋友可以参考下 在实际工作中有可能会碰到需要在nginx命令行执行php脚本的时候,当然你可以去 ...

  4. shell脚本中执行命令_如何在Shell脚本中执行命令?

    shell脚本中执行命令 Shell is a command-line interpreter that allows the user to interact with the system. I ...

  5. Tcl/Tk脚本中执行Shell脚本

    在Tcl/Tk脚本中执行Shell命令 set n 0 set x "*"while {$n < 10} {puts $xset x "$x"*set n ...

  6. [转帖]C#执行SQL脚本,读取XML文件

    [转帖]C#执行SQL脚本,读取XML文件 需要添加如下引用: using System.IO; using System.Data.SqlClient; using System.Collectio ...

  7. linux脚本中如何读取文件,如何在Shell脚本中逐行读取文件

    原标题:如何在Shell脚本中逐行读取文件 在这里,我们学习Shell脚本中的3种方法来逐行读取文件. 方法一.使用输入重定向 逐行读取文件的最简单方法是在while循环中使用输入重定向. 为了演示, ...

  8. python中的main函数可以被其他文件调用么_Python中在脚本中引用其他文件函数的实现方法...

    在导入文件的时候,Python只搜索当前脚本所在的目录,加载(entry-point)入口脚本运行目录和sys.path中包含的路径例如包的安装地址.所以如果要在当前脚本引用其他文件,除了将文件放在和 ...

  9. 如何在 Shell 脚本中执行语法检查调试模式

    我们开启了 Shell 脚本调试系列文章,先是解释了不同的调试选项,下面介绍如何启用shell调试模式. 写完脚本后,建议在运行脚本之前先检查脚本中的语法,而不是查看它们的输出以确认它们是否正常工作. ...

最新文章

  1. 联泰集群发布水晶系列工作站,用于深度学习场景
  2. unity可以用python编写吗_基于python的Cා代码生成器(用于服务并应用于unity),一个,c,为了,并且,Unity...
  3. idea gui插件_给 IDEA 换了酷炫的主题,研发小姐姐看到:feel so high。。。
  4. python怎么加载包_如何在Python Interpreter中重新导入更新的包?
  5. 提高xshell使用效率
  6. json取数据怎么取_灯罩怎么取下来 各种吸顶灯的灯罩拆卸方法
  7. 从全息投影到全息平台,必须克服7个障碍
  8. centos7图形化分区和ks文件分区的配置
  9. 基于web的模型管理系统的设计
  10. 区块链是什么意思?源中瑞开发BaaS平台促进企业数字转型升级
  11. 【学习笔记】docker安装yapi并配置及添加用户、自动同步swagger设置
  12. [RK356x] [Firefly-Ubuntu] 10min带你了解Ubuntu固件各个分区
  13. C语言实现无符号乘法
  14. 数据库 约束(Constraint)、多表关系和范式
  15. 数据全量、增量、比较更新
  16. Mission planner加载天地图(混合卫星地图含标注)
  17. 爬虫—有道翻译案例(史上最详细分析教程)
  18. 2007高校bbs上20个睿智冷笑话
  19. 《2021当代青年婚恋状态研究报告》:觅伊打破交友困境
  20. Windows PowerShell清除历史命令执行记录

热门文章

  1. 2021-07-29 Ubantu18.04下Cura编译
  2. Nginx代理https接口
  3. (程序设计方法与实践)水晶球
  4. Cesium:绘图工具v1.0
  5. VC2017使用protobuf-3.17.3版本
  6. 用 js判断 一个数是否是素数(质数)_JS专题之memoization
  7. AR技术揭秘:如何实现虚拟与现实的完美融合?
  8. speedoffice(Word)怎么分栏
  9. 芯片里的SOP SSOP TSOP TSSOP有什么区别?
  10. vivado三人表决仿真