您可以使用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, objFSOSet 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的文件至这个脚本上即可。
由于“原始文件名”无法获取到,所以代码中未加入。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)