首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在安装期间运行".bat“文件?

如何在安装期间运行".bat“文件?
EN

Stack Overflow用户
提问于 2010-03-10 14:30:23
回答 4查看 46.4K关注 0票数 37

在安装项目中,诸如".exe,.dll,.js,.vbs“之类的可执行文件是可接受的,但无法在自定义操作中运行.bat文件。

问题是如何在安装过程中运行*.bat文件?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-06-09 06:27:36

好了,经过多次的搜索和试验,我已经解决了这个问题。我不确定这是不是最好的方法,但它是有效的。

这是一个场景:我有一个应用程序,我想通过Visual Studio安装项目进行部署。除了我的应用程序文件之外,我还想在目标目录中创建一个包含批处理(.bat)文件的子目录。我希望在安装过程结束时运行此文件。

下面是你要做的:

应用程序创建一个安装项目,并像往常一样进行配置,包括放置批处理文件的子目录(如果您不想将批处理文件放在subdirectory).

  1. In文件夹中,则可以直接将其放在应用程序文件夹中)。在“文件系统”视图中(在“解决方案资源管理器”->“查看”->“文件系统”中右键单击该项目)。添加要执行的批处理文件,并在“自定义操作”视图中(在“解决方案资源管理器”->“视图”->“提交”上右键单击项目,然后选择"Add Custom Action"
  2. Navigate to“,并从Arguments属性中的Arguments property.
  3. Enter:/c "[TARGETDIR]subdirectoryname\batchfile.bat"中为新创建的自定义cmd.exe.
  4. Open /Commit选择属性面板)。其中subdirectoryname应该替换为您的子目录的名称(如果您像我一样将批处理文件放在一个子目录中...如果不是,则值应为/c "[TARGETDIR]batchfile.bat"),batchfile.bat应为批处理文件的文件名。

就这样。完成安装过程的其余部分后,将立即执行批处理文件。

为了清楚起见,这里有一个例子:

我的批处理文件:blah.bat

我的子目录:mydir

然后,针对cmd.exe的自定义操作的参数值将为

/c "[TARGETDIR]mydir\blah.bat"

希望这对某些人有帮助!

票数 62
EN

Stack Overflow用户

发布于 2014-10-23 15:12:04

实现相同结果的另一种方法是将一个.vbs文件放入运行相应.bat文件的自定义操作中。下面的代码是我放在安装应用程序文件夹中的"RunRegisterComponents.vbs“。当然,我将TARGETDIR作为.vbs参数放在Visual Studio属性窗口中。

代码语言:javascript
复制
dim WshShell
Set WshShell = CreateObject("WScript.Shell")

' Read the "CustomActionData" property holding the install directory.
dim programDir
programDir=  property("CustomActionData")

' Make the batch full file name and parameter
commandString = chr(34) & programDir & "RegisterComponents.bat" & chr(34) & " " & chr(34) &
programDir& chr(34)

' Set the current directory
WshShell.CurrentDirectory = programDir

' Run batch.
ret = WshShell.Run (commandString, 0, 0)

这就是我设置自定义操作的方式:

我希望这能对你有所帮助!

票数 7
EN

Stack Overflow用户

发布于 2012-07-06 16:11:43

  1. 检查这篇文章(文章已弃用),即使它是VB.NET版本,它也适用于C#。最重要的部分是(翻译为C#)创建一个新的类库,并添加一个包含以下内容的新的Installer类:如本文所述,然后您可以创建一个引用到刚刚创建的项目的新的自定义操作。

override void Commit(IDictionary savedState) { base.Commit(savedState);System.Diagnostics.Process.Start("myApp.bat","your bat arguments");}

  • 现在我们正在将批处理文件添加到您的安装程序项目中。创建一个安装项目并像往常一样进行配置,包括放置批处理文件的子目录(如果不需要,可以直接将其放在应用程序文件夹中。在“文件系统”视图中(在“解决方案资源管理器”->“视图”->“文件系统”中右键单击项目),添加要执行的批处理文件。

  • 构建安装程序项目。
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2414956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档