目标:
- 我需要传递一个数组以批处理模式将字符串(或对象标识符,或整数…)发送到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不使用;作为结束行,因此您可能需要一般地检查语法。
选项:
- 您可以在-dxl中使用evalTop_,例如-dxl "evalTop_("int reqName[]={1,2,3,4}";这将把一个变量reqName推入DOORS的全局上下文中。只是要非常小心,因为任何其他调用reqName的脚本都会得到这个变量和类型,所以你应该让名字更具体。
- 跳过-dxl,让python重写脚本的某些部分。dxl -一般来说,你应该能够像对待。txt文件一样对待。dxl文件,但如果需要,我猜你的python脚本可以直接写入txt,然后复制到dxl。
如果我误解了什么,请告诉我!
注释-已编辑为转义选项1中的反斜杠