[英]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.