2014-09-23 139 views
0

新手問題 - 我在這裏有一個查找升級代碼的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到一個文本文件?或者我需要輸出其他東西來獲取我正在查找的產品代碼?

回答

1

將文本寫入文件的簡單方法是輸入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

0

玩過它,谷歌搜索它,我找到了一個適合我的解決方案。這將基於特定的升級代碼在計算機上打印出所有的產品代碼。這裏的腳本:

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文件。

請注意此代碼之後也會卸載軟件。