vbs获取a.exe的输出内容?

vbs获取a.exe的输出内容?,第1张

您可以使用VBScript中的WScript.Shell对象的Exec方法来执行a.exe并捕获其输出。以下是一个简单的例子:

Set WshShell = WScript.CreateObject("WScript.Shell")

Set oExec = WshShell.Exec("a.exe")

Do While Not oExec.StdOut.AtEndOfStream

    strLine = oExec.StdOut.ReadLine()

    '在这里处理每一行输出的内容

Loop

在此示例中,WScript.Shell对象的Exec方法用于执行a.exe,创建一个可执行程序的进程并返回对该进程的引用。通过oExec.StdOut对象可以访问该进程的标准输出,使用AtEndOfStream属性来检查是否已经读取了所有输出行。在循环中,使用ReadLine方法读取每行输出的内容,并在需要的地方进行处理。

Dim PathFile, Path, File, Ext, objFSO

Set objFSO = CreateObject("Scripting.FileSystemObject")

If WScript.Arguments.Count = 0 Then 

  Wscript.Echo "用法:" & vbcrlf & objFSO.GetFile(Wscript.ScriptFullName).Name & "  [drive:][path][filename]"

  Wscript.Quit

  Else

  PathFile = WScript.Arguments(0)

End If

Path = objFSO.GetFile(pathfile).ParentFolder & "\"

File = objFSO.GetFile(pathfile).Name

Ext = "." & objFSO.GetExtensionName(PathFile)

If Not UCase(Ext) = ".EXE" Then

  If Not UCase(Ext) = ".DLL" Then

    MsgBox "仅支持 exe 和 dll 格式的文件。",48,"警告"

    Wscript.Quit

  End If

End If

Dim objSHELL

Set objSHELL = CreateObject("Shell.Application")

Dim objPath, objFile, objName, Arlt, Name

Set objPath = objSHELL.NameSpace(Path)

Set objFile = objPath.ParseName(File)

For i = 0 To 300

  If objPath.GetDetailsOf(,i) = "文件说明" Then Description = objPath.GetDetailsOf(objFile, i)

  If objPath.GetDetailsOf(,i) = "文件版本" Then FileVer = objPath.GetDetailsOf(objFile, i)

  If objPath.GetDetailsOf(,i) = "产品名称" Then Name = objPath.GetDetailsOf(objFile, i)

  If objPath.GetDetailsOf(,i) = "产品版本" Then Version = objPath.GetDetailsOf(objFile, i)

  If objPath.GetDetailsOf(,i) = "版权" Then CopyRight = objPath.GetDetailsOf(objFile, i)

  If objPath.GetDetailsOf(,i) = "大小" Then Size = objPath.GetDetailsOf(objFile, i)

  If objPath.GetDetailsOf(,i) = "修改日期" Then Modified = objPath.GetDetailsOf(objFile, i)

  If objPath.GetDetailsOf(,i) = "语言" Then Language = objPath.GetDetailsOf(objFile, i)

Next

MsgBox "文件说明 : " & Description & vbcrlf & _

       "文件版本 : " & FileVer & vbcrlf & _

       "产品名称 : " & Name & vbcrlf & _

       "产品版本 : " & Version & vbcrlf & _

       "版    权 : " & CopyRight & vbcrlf & _

       "大    小 : " & Size & vbcrlf & _

       "修改日期 : " & Modified & vbcrlf & _

       "语    言 : " & Language ,64,File & " 属性"

Set objFSO = Nothing

Set objSHELL = Nothing

保存为GetFileDetail.vbs,然后直接拖动exe或dll的文件至这个脚本上即可。

由于“原始文件名”无法获取到,所以代码中未加入。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11376138.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存