gpt4 book ai didi

vbscript - VBS Run cmd.exe 输出到一个变量;不是文本文件

转载 作者:行者123 更新时间:2023-12-01 01:02:26 24 4
gpt4 key购买 nike

这是我到目前为止。有用;将临时文件夹路径输出到文本文件。
我真正想要的是将数据输出到变量。我在网上看到的每个例子,都展示了如何使用类似的东西来做到这一点:

set objScriptExec = wshShell.Exec (strCommand) 

其次是
strresult = LCase(objScriptExec.StdOut.ReadAll. // code

我希望它与 Run 一起运行,不是 Exec ,因为我希望隐藏命令提示符窗口,因为我将使用下面的代码执行许多命令。如何将该输出捕获到变量?
Set wsShell = CreateObject("WScript.Shell")
strCommand = "cmd /c echo %temp% > %temp%\test.txt"
wsShell.Run strcommand,0,True

最佳答案

这可以通过 Windows Script Host Exec 命令来完成。 StdOut、StdIn 和 StdErr 都可以访问,并且在命令完成时 ERRORLEVEL 可用。

Dim strMessage, strScript, strStdErr, strStdOut
Dim oExec, oWshShell, intErrorLevel
Dim ComSpec

Set oWshShell = CreateObject("WScript.Shell")
ComSpec = oWshShell.ExpandEnvironmentStrings("%comspec%")

intErrorLevel = 0
strScript = ComSpec & " /C echo %temp%"

On Error Resume Next
Set oExec = oWshShell.Exec (strScript)
If (Err.Number <> 0) Then
strMessage = "Error: " & Err.Message
intErrorLevel = 1
Else
Do While oExec.Status = 0
Do While Not oExec.StdOut.AtEndOfStream
strStdOut = strStdOut & oExec.StdOut.ReadLine & vbCrLf
Loop
Do While Not oExec.StdErr.AtEndOfStream
strStdErr = strStdErr & oExec.StdErr.ReadLine & vbCrLf
Loop
WScript.Sleep 0
Loop
intErrorLevel = oExec.ExitCode
strMessage = strStdOut & strStdErr & CStr(intErrorLevel)
End If

WScript.Echo (strMessage)

注意:用“Read(1)”替换上面的“ReadLine”可以完成同样的事情,但增加了处理字符而不是整行的能力。

关于vbscript - VBS Run cmd.exe 输出到一个变量;不是文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22106823/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com