好吧,所以我已经尝试了一段时间,而且我意识到这并不是经常要问的问题,而且随着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/