gpt4 book ai didi

windows - 从 VBScript 中的 cmd/c 命令获取返回值

转载 作者:可可西里 更新时间:2023-11-01 09:23:08 28 4
gpt4 key购买 nike

在 VBScript 中,内置的 Shell.Run 方法不提供输出重定向,因此必须使用以下解决方法:

Running command line silently with VbScript and getting output?

Dim retVal
retVal = WshShell.Run( "cmd /c ""commandGoesHere"" > c:\temp\output.txt", 0, True )

然而,returnValue 将具有 cmd 的返回值,而不是 commandGoesHere 的返回值。

我以为我可以检查 shell.Environment("ERRORLEVEL") 但大概这也是 cmd 的返回值,而不是 commandGoesHere.

...那么如何获取 commandGoesHere 的返回值同时将其输出重定向到另一个文件?

最佳答案

returnValue = WScript.CreateObject("WScript.Shell").Run( _ 
"cmd /v /c (>""output.txt"" ""commandGoesHere"" & exit !errorlevel!)" _
, 0 _
, True _
)

在启用延迟扩展(/v)的情况下启动cmd实例,并在errorlevel下退出cmd实例> 由上一个命令设置。

需要延迟扩展,因为 cmd 解析器在行/ block 解析阶段将所有 %var% 读取操作替换为变量内的值。如果没有延迟扩展 (%errorlevel%),exit 命令返回的值将在开始执行命令之前被检索。对于延迟扩展 (!errorlevel!),将在 commandGoesHere 结束后执行 exit 命令时检索该值。

关于windows - 从 VBScript 中的 cmd/c 命令获取返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41778613/

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