楼主:
starlin2 (重新开始生活)
2023-09-15 17:29:26如题,因为我有一个程式是需要在背景执行,有点server的程式,
所以会像这样执行,然后如果手动执行的话会在cmd line秀出一些讯息的~
${process} Start Process server.exe
手动执行大概像这样,
C:\server.exe
server is running
然后我在robot想看他输出的讯息,
Log To Console ${process.stdout}
Log To Console ${process}
但都一直看不到,输出的讯息是长这样:
<_io.BufferedReader name=5>
<subprocess.Popen object at 0x000001D0CB1D2160>
也有试着加过shell=true了,结果一样,
另外,我也试了改用Run Process,结果变只有输出我执行的档案
C:\server.exe
.<result object with rc 0>
不知道这边有没有熟悉robot的大神可以帮忙解答一下的?
感谢万分。
作者:
zerof (猫橘毛发呆雕像)
2023-09-15 20:35:00Robot 完整的 code 呢?你 process 怎么执行的
作者:
wuyiulin (龙破坏剑士-巴斯达布雷达)
2023-09-16 07:47:00什么Robot,你用哪方的API?
作者:
zerof (猫橘毛发呆雕像)
2023-09-19 12:52:00我问的是你 Start Process 带的参数。如果你实际上是跟第三行一样的写法,"subporcess stdout"自己研究一下。 (btw, "Log to console" == print)
Robot就是用subprocess.Popen,才叫你串stdout
楼主:
starlin2 (重新开始生活)
2023-09-20 08:51:00我在Start Process没有带参数,有建议的参数吗?
看一下process.stderr,server.exe不一定输出在stdout
作者:
Hsins (翔)
2023-09-22 14:34:00process.stdout.read()东西都还在 io streaming 里, 这东西又不是字串当然不给你log 啊。
查robot doc,process.stdout就stdout才会猜server.exe根本不是print在stdout
作者:
s860134 (s860134)
2023-10-11 09:42:00buffer改成 stdout.read()12楼第一句话就可以解了