加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

csv – 我需要将VBS WScript.Echo输出写入text或cvs

发布时间:2020-12-14 18:29:03 所属栏目:资源 来源:网络整理
导读:我正在尝试编写一个VBScript,它将在文本文件或csv中列出系统上所有已安装的应用程序.我能够找到现有代码列出所有软件(包括名称,版本,日期和大小).当我正在运行它时,因为我发现它回显了主机回声弹出.我需要添加什么来使其将每个回声输出到文件?我相信这很容
我正在尝试编写一个VBScript,它将在文本文件或csv中列出系统上所有已安装的应用程序.我能够找到现有代码列出所有软件(包括名称,版本,日期和大小).当我正在运行它时,因为我发现它回显了主机回声弹出.我需要添加什么来使其将每个回声输出到文件?我相信这很容易,但我似乎无法找到解决方案.

以下是我找到的脚本:

Dim fso
Set fso = WScript.CreateObject("Scripting.Filesystemobject")
' List All Installed Software





Const HKLM = &H80000002 'HKEY_LOCAL_MACHINE
strComputer = "."
strKey = "SOFTWAREMicrosoftWindowsCurrentVersionUninstall"
strEntry1a = "DisplayName"
strEntry1b = "QuietDisplayName"
strEntry2 = "InstallDate"
strEntry3 = "VersionMajor"
strEntry4 = "VersionMinor"
strEntry5 = "EstimatedSize"

Set objReg = GetObject("winmgmts://" & strComputer & _
 "/root/default:StdRegProv")
objReg.EnumKey HKLM,strKey,arrSubkeys
WScript.Echo "Installed Applications" & VbCrLf
For Each strSubkey In arrSubkeys
  intRet1 = objReg.GetStringValue(HKLM,strKey & strSubkey,_
   strEntry1a,strValue1)
  If intRet1 <> 0 Then
    objReg.GetStringValue HKLM,_
     strEntry1b,strValue1
  End If
  If strValue1 <> "" Then
    WScript.Echo VbCrLf & "Display Name: " & strValue1
  End If
  objReg.GetStringValue HKLM,_
   strEntry2,strValue2
  If strValue2 <> "" Then
    WScript.Echo "Install Date: " & strValue2
  End If
  objReg.GetDWORDValue HKLM,_
   strEntry3,intValue3
  objReg.GetDWORDValue HKLM,_
   strEntry4,intValue4
  If intValue3 <> "" Then
     WScript.Echo "Version: " & intValue3 & "." & intValue4
  End If
  objReg.GetDWORDValue HKLM,_
   strEntry5,intValue5
  If intValue5 <> "" Then
    WScript.Echo "Estimated Size: " & Round(intValue5/1024,3) & " megabytes"
  End If
Next

解决方法

解决此问题的一种方法是通过cscript.exe运行脚本并将输出重定向到文件:
cscript.exe //NoLogo "C:pathtoyour.vbs" >"C:output.txt"

如果要修改脚本以将其输出写入文件而不管其运行方式如何,则需要添加用于打开/关闭输出文件的代码:

Dim fso
Set fso = WScript.CreateObject("Scripting.Filesystemobject")
Set f = fso.OpenTextFile("C:output.txt",2)

...

f.Close
'End of Script

并用f.WriteLine替换每次出现的WScript.Echo.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读