将tbscript信息输出到txt文件

将tbscript信息输出到txt文件

问题描述:

新手问题 - 我在这里有一个查找升级代码的VBScript,并在此基础上查找指定升级代码的产品代码。升级代码始终相同,但产品代码从版本更改为版本,这可能会使卸载软件变得麻烦。不,我自己并没有制作这个剧本。将tbscript信息输出到txt文件

此脚本工作得很好,但我想让它将所有找到的产品代码输出到文本文件。我在Google上看了好几个小时,发现了一些线索,但是我一直无法使它工作。总是出现一个空白的文本文件。

下面的代码:

strComputer = "." 
Set WshShell = CreateObject("Wscript.Shell") 
Set objWMIService = GetObject("winmgmts:" _ 
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 

On Error Resume Next 

Set colSoftware = objWMIService.ExecQuery _ 
    ("Select * from Win32_Property Where Property = 'UpgradeCode'") 

For Each objSoftware in colSoftware 
    If objSoftware.Value = "{BCCCB25E-C6A6-4340-9018-DA0FB34AF226}" Then 
    strCMD = "MsiExec.exe /x " & objSoftware.ProductCode & " /qn" 
    objExec = WshShell.Run(strCMD,1,True) 
    If objExec <> 0 Then 
     WScript.Quit objExec 
    End If 
    End If 
Next 
WScript.Quit 0 

我如何输出objSoftware.ProductCode到一个文本文件?或者我需要输出其他东西来获取我正在查找的产品代码?

将文本写入文件的简单方法是输入WScript.Echo所需的信息并运行cscript x.vbs > output.txt这样的脚本。

如果这似乎是行人,开始你的研究here

+0

感谢您的回答。这是我尝试的第一件事情之一。但是,它似乎并不奏效。我可能做错了。 我将此代码添加到代码中:'WScript.Echo objSoftware.ProductCode'就在我的代码中的strCMD命令的下方,但除了标准的“Microsoft(R)Windows Script blablabla”之外,output.txt中没有任何输出。 任何想法可以改变回声? objSoftware.ProductCode是我的第一个猜测,但没有运气。 – ShadowSF96 2014-09-23 09:31:52

+0

我发布了一个答案,我让它工作。谢谢你的帮助。我不知道为什么它以前没有工作,但它现在起作用。也许是一个错字,我不知道,但我发布的代码适合我。 – ShadowSF96 2014-09-23 11:15:31

玩过它,谷歌搜索它,我找到了一个适合我的解决方案。这将基于特定的升级代码在计算机上打印出所有的产品代码。这里的脚本:

strComputer = "." 
Set WshShell = CreateObject("Wscript.Shell") 
Set objWMIService = GetObject("winmgmts:" _ 
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 

On Error Resume Next 

Set colSoftware = objWMIService.ExecQuery _ 
    ("Select * from Win32_Property Where Property = 'UpgradeCode'") 

For Each objSoftware in colSoftware 
    If objSoftware.Value = "{BCCCB25E-C6A6-4340-9018-DA0FB34AF226}" Then 
    Wscript.Echo objSoftware.ProductCode 
    strCMD = "MsiExec.exe /x " & objSoftware.ProductCode & " /qn" 
    objExec = WshShell.Run(strCMD,1,True) 
    If objExec <> 0 Then 
     WScript.Quit objExec 
    End If 
    End If 
Next 
WScript.Quit 0 

运行在命令提示符下//NoLogo scriptname.vbs > log.txt,让我与所有指定的升级代码的产品代码的txt文件。

请注意此代码之后也会卸载软件。