如何在运行时将变量从 MATLAB 脚本传递到 PowerShell 脚本?

问题描述 投票:0回答:1

我需要自动化测试,作为 Jenkins 管道的一部分。测试本身在 MATLAB 中进行,有 5 个阶段,每个阶段以将值设置为整数(

uint16_t
uint8_t
)并存储消息结束。我必须将这 5 个整数和 5 个字符串传递给 PowerShell 脚本,因为 Jenkins 只能运行 PowerShell 和 Python 脚本,而不能运行 MATLAB。我不完全确定如何才能实现这一目标。 Internet 上关于如何使用 PowerShell 运行 MATLAB 脚本的信息并不多,当然比相反的方法要少得多。 (也许我应该检查运行 MATLAB 脚本的批处理文件脚本。)

到目前为止,我发现的唯一选择是使用 MATLAB 写入临时文件,然后从中读取(并删除它),就像 .txt 或 .csv 文件一样,但这不太可行。谁能建议其他方法来更直接地传递它? MATLAB 文件不是函数,但可以将其制成输出这些变量的函数。另外,如果将整数转换为另一种整数类型也很好。

powershell matlab automated-tests
1个回答
1
投票

就像@TesselttingHeckler 所说的那样,方法是

$results = matlab.exe yourscript

如果您在启动测试时想要更多功能,例如无显示窗口、以批处理模式运行或等待 matlab 执行结束,这里有一个示例。

runTestMatlab (){
   result=$(matlab.exe -wait -nosplash -noFigureWindows -batch TestScript.m)

   if [ $? -ne 0 ]; then
       # Error with the Matlab run
       echo $result
       return 1
   fi
   echo "$result"
   return 0
}

然后您可以使用 awk 或任何其他您想要的工具解析结果。

© www.soinside.com 2019 - 2024. All rights reserved.