Voodoo与DOS批处理文件

时间:2011-08-12 20:58:09

标签: visual-studio installer batch-file

我创建了一个简单的batch file,用于启动我公司内的 * .msi 安装程序,创建该进程的日志文件,然后在安装程序出现后显示日志文件完成。

installAndLog.bat:

msiexec.exe /i "\\FileServer2\setup.msi" /l*v "C:\setupLog.txt"
"C:\setupLog.txt"

它有效,但有两(2)个故障让我烦恼:

  • 黑色控制台框在后台显示安装程序运行的整个时间并显示日志文件。 Q1:我该如何隐藏?

  • 在不再查看日志文件(即notepad.exe已关闭)之前,控制台框不会关闭。 Q2:我可以在新流程中调用文本文件,只需退出吗?

我当天是DOS爱好者,但那是多年前的事了。

4 个答案:

答案 0 :(得分:3)

Q1 - AFAIK你无法真正隐藏控制台窗口。

Q2 - 使用start命令。这将在shell外部启动指定的程序(记事本)。它还会阻止shell等待应用程序关闭以继续处理批处理脚本。

最好使用start命令更改批处理脚本以启动MSI安装程序,并在安装完成后让安装程序启动记事本以查看日志文件。

答案 1 :(得分:3)

运行批处理文件时,我认为您无法隐藏控制台窗口。但是,您可以使用vbscript,默认情况下不会创建控制台窗口。

采取以下内容并将其放在扩展名为.vbs的文件中:

Dim wshShell
Set wshShell = CreateObject("WScript.Shell")

wshShell.Run "msiexec.exe /i ""\\FileServer2\setup.msi"" /l*v ""C:\setupLog.txt""", 1, true
wshShell.Run "C:\setupLog.txt"

所有的双引号都在那里,因为整个命令必须被“s”包围并加倍它们才会逃脱它们。WshShell.Run的文档可以获得更多信息。

答案 2 :(得分:1)

如果您真的想要将这些批处理窗口移开,您将不得不切换到其他东西。一个简单的替代方案可能是Windows脚本主机支持的脚本语言之一。 或者您尝试使用HTA(HTML应用程序),请参阅herehere

答案 3 :(得分:0)

按计划任务或作为服务以不同用户身份运行dos脚本。