首页 > 解决方案 > Powershell 从 Visual Basic 脚本中获取返回值

问题描述

我在 Visual Basic 脚本中有一些旧代码。我不想将这个旧代码重新编写到 PowerShell 中,而是想从 PowerShell 调用 VB 脚本并捕获它们的返回值。

如何在 powershell 中获取 Visual Basic 脚本的返回值?

像这样的东西:

$returnValue = Invoke-Command -ScriptBlock{.\vbs\legacyVbsFunction.vbs}

视觉基本功能可能如下所示

Function MyFunction() As Double
    Return 3.87 * 2
End Function

标签: powershellvbscript

解决方案


听起来您想捕获 VBScript 的 (stdout)输出

$output = cscript.exe //nologo .\vbs\legacyVbsFunction.vbs

请注意,这$output将是单个字符串(如果脚本仅输出 1 行)或字符串数​​组(如果是多行输出)。


例如,假设包含.\vbs\legacyVbsFunction.vbs以下代码:

Function MyFunction
    MyFunction = 3.87 * 2
End Function

' Call the function and print it to stdout.
Wscript.Echo(MyFunction)

您可以捕获输出并将其转换为 a [double],如下所示:

[double] $output = cscript.exe //nologo .\vbs\legacyVbsFunction.vbs

$output然后包含7.74.


推荐阅读