簡體   English   中英

將Vbscript信息輸出到txt文件

[英]Output Vbscript info to txt file

新手問題-我在這里有一個VBScript,用於查找升級代碼,並根據該VBScript查找指定升級代碼的產品代碼。 升級代碼始終相同,但是產品代碼在版本之間會發生變化,這可能會導致卸載軟件麻煩。 不,我不是自己做這個腳本的。

該腳本可以很好地工作,但是我想使其輸出將找到的所有產品代碼輸出到文本文件。 我在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類的腳本。

如果行人看來,請在這里開始您的研究。

玩弄它,用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
    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文件,其中包含指定升級代碼的所有產品代碼。

請注意,此代碼也會在以后卸載該軟件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM