在Wix中安装后调用命令行

时间:2011-09-30 10:22:22

标签: wix wix3.5

我正在使用wix并希望在安装后调用命令行。

我该怎么做?

我的命令行在这里“bcdedit.exe / set {current} nx AlwaysOff”//这使得dep off

是的,我已经阅读过有关自定义操作的内容,但我没有看到任何命令行示例。

P.S。 bcdedit是Win 7及更高版本中的常用exe。

P.S。目前我有下一个脚本,它不起作用:

          Directory  ="INSTALLLOCATION"
          ExeCommand ='echo hello> echo_test.txt'
          Execute    ="immediate"
          Return     ="asyncNoWait"
                />

3 个答案:

答案 0 :(得分:9)

echo不是可执行文件,它是命令处理器cmd.exe的命令。将您的ExeCommand值更改为cmd.exe /c "echo hello >echo_test.txt"

您的echo_test.txt将位于任意目录中,您必须使用绝对路径才能获得可预测的结果。

答案 1 :(得分:7)

好的,这个例子有效......

<CustomAction Id         ="echo_test"                     
              Directory  ="INSTALLLOCATION"
              ExeCommand ='NOTEPAD.EXE echo_test.txt'
              Execute    ="immediate"
              Return     ="asyncNoWait"
                    />

我使用echo的测试示例因某些原因无效。 并且在我正在测试的WinXP上不存在bcdedit ......

答案 2 :(得分:2)

你好网上有很多例子......

尝试这些链接

http://wix.sourceforge.net/manual-wix2/qtexec.htm

Execute Command Line In WiX Script?

WiX - CustomAction ExeCommand - Hide Console

或者试试这个例子:

 <CustomAction Id="SetQtExecCmd" Property="SetQtExec"
       Value="&quot;[PutPathOfThisFileHere]bcdedit.exe&quot; /set {current} nx AlwaysOff" />
<CustomAction Id="SetQtExec" BinaryKey="WixCA" DllEntry="CAQuietExec" Execute="immediate" Return="check" />