以批处理模式将字符串数组传递给dxl脚本



目标:

  • 我需要传递一个数组以批处理模式将字符串(或对象标识符,或整数…)发送到dxl脚本。

问题:

  • 当传递array参数时,弹出cmd提示符,表示发生了错误(暂时没有stderr重定向)

How am I doing:

  • 使用int数组时的完整命令如下:

    r'"C:Program FilesIBMRationalDOORS9.6bindoors" -d 36677@server.com -u user -P passw -p PRJ -dxl "int reqName[]={{1,2,3,4}}; string planned="TestPlanned {}"; string result="TestResult {}" " -batch "script.dxl" > D:output.txt'

  • 脚本在python中使用.format{}填充,然后使用subprocess.check_output启动。为了测试它,从命令行启动命令就足够了,像这样:

    r'"C:Program FilesIBMRationalDOORS9.6bindoors" -d 36677@server.com -u user -P passw -p PRJ -dxl "int reqName[]={{1,2,3,4}}; string planned="TestPlanned 1"; string result="TestResult 1" " -batch "script.dxl" > D:output.txt'

作为旁注,D:output.txt is从未创建或填充,所以也许我在这里也错过了一些东西。

脚本实际上只是打印(计数)接收到的参数的值或大小:

cout<< planned "rn"
cout<< result "rn"
print sizeof(reqName)"" 

我不认为这将工作作为写- '脚本。Dxl '是在一个单独的上下文中进行评估的,而不是在命令行上要求项目运行的-dxl。

同样,dxl不使用;作为结束行,因此您可能需要一般地检查语法。

选项:

  1. 您可以在-dxl中使用evalTop_,例如-dxl "evalTop_("int reqName[]={1,2,3,4}";这将把一个变量reqName推入DOORS的全局上下文中。只是要非常小心,因为任何其他调用reqName的脚本都会得到这个变量和类型,所以你应该让名字更具体。
  2. 跳过-dxl,让python重写脚本的某些部分。dxl -一般来说,你应该能够像对待。txt文件一样对待。dxl文件,但如果需要,我猜你的python脚本可以直接写入txt,然后复制到dxl。

如果我误解了什么,请告诉我!

注释-已编辑为转义选项1中的反斜杠

相关内容

  • 没有找到相关文章

最新更新