shell - 在vb6中获取实际的Powershell返回值?

标签 shell powershell vb6 return

好吧,所以我已经尝试了一段时间,而且我意识到这并不是经常要问的问题,而且随着vb6逐渐被淘汰,似乎没有比这少的帮助了。我想谈一下语言。

标题实际上并没有全部说明,因为我正在尝试做一些非常具体的事情。我需要执行一个shell命令(我知道该怎么做),但是,执行完之后,我希望能够将该命令的返回值保存为字符串。例如,如果命令是ipconfig,则我希望该命令的整个返回值(执行该命令后在powershell中看到的所有文本)都保存到程序中的字符串中。

据我所知,我需要“导入”一些东西,因为我必须使用WshShell,但我不知道从哪里获得。这就是问题的一部分,我必须添加哪些类以及如何添加,或者是否有一种无需添加类就可以做到的方法,那就更好了。另外,我听说过很多有关CreatePipe的使用以及类似问题的信息,但是我不知道如何使用它。

基本上,我的意思是说我对这个主题没有任何知识,任何见解都会受到赞赏,并感谢所有答复。

最佳答案

有很多方法。使用VBScript的WSHShell.Exec是最简单的。

这是VBScript,但是可以将VBScript粘贴到VB中(反之亦然)。

Dim WshShell, oExec
Set WshShell = CreateObject("WScript.Shell")

Set oExec = WshShell.Exec("ipconfig")

Do While oExec.Status = 0
     WScript.Sleep 100
Loop
MsgBox oExec.StdOut.ReadAll

从帮助中略有修改。

这是从VBS / VB ping的方法
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")

Set colItems = objWMIService.ExecQuery("Select * From win32_PingStatus where address='104.43.195.251'")
'msgbox colItems
For Each objItem in colItems
    msgbox "Status" & objItem.statuscode & " Time " & objItem.ResponseTime
Next

关于shell - 在vb6中获取实际的Powershell返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38255453/

相关文章:

perl - 如何从 cron 运行的 Perl 脚本中运行 shell 脚本?

powershell - 使用 Powershell 设置系统日期并保持系统时间

vb6 - 转码过程中的window cmd

mysql - Vb6将密码作为文本框插入数据库中

C# 等效于 VB 6 DoEvents

bash - 在不退出 shell 的情况下使用 set -e 运行 bash 函数

bash - 在 shell 脚本中如何验证给定主机名是否属于 localhostname 系列

powershell - 为什么PowerShell从$ home而不是当前目录解析路径?

powershell - 为什么我收到警告 "The variable ' lastUpdate' is assigned but never used."在这个 PowerShell 中

shell - POSIX shell 中的换行符