0

我有一个用于卸载应用程序的脚本

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" _
    & strComputer & "\root\cimv2")
Set colSoftware = objWMIService.ExecQuery _
  ("Select * from Win32_Product " _
      & "Where Name = 'Personnel database'")
For Each objSoftware in colSoftware
  Wscript.Echo "Name: " & objSoftware.Name
  Wscript.Echo "Version: " & objSoftware.Version
    objSoftware.Uninstall()
Next

问题是我不知道是否

  1. 已开始运行或已完成

  2. 卸载已完成

  3. 已完成

有没有办法在日志文件或控制台中显示这一点。

谢谢

4

2 回答 2

4

Uninstall当返回代码为 0时,卸载已完成。不过,让您的脚本记录某些内容完全取决于您。您可以将内容写入日志文件或事件日志,MsgBox向控制台显示或写入文本(使用 运行时cscript.exe)。

前段时间我写了这个来简化处理(如果你能原谅这个无耻的插件)。你可以像这样使用它:

'insert class code here

Set clog = New CLogger
clog.LogToConsole = False
clog.LogFile = "C:\path\to\your.log"
clog.IncludeTimestamp = True

clog.Log "Starting"

'...

For Each objSoftware in colSoftware
  clog.Log "Uninstalling " & objSoftware.Name & " (v" & objSoftware.Version & ")"
  rc = objSoftware.Uninstall()
  If rc = 0 Then
    clog.Log "Uninstall complete"
  Else
    clog.LogError "An error occurred: " & rc
  End If
Next
clog.Log "Finished"
于 2013-03-15T18:15:36.113 回答
1

你总是可以将 msgbox 放在你的 for each 循环中的脚本中

  MsgBox("Uninstalling " + objSoftware.Name)

或者你可以在你的每个循环中做一个简单的

  Wscript.Echo "Uninstalling " + objSoftware.Name

只需从打开的管理员命令提示符窗口运行您的 vbs

   wscript uninstallfile.vbs

这将显示在您的命令控制台中。

于 2013-03-15T17:54:33.893 回答