PHP前端开发

如何在 pypsexec 中获取长时间运行命令的结果?

百变鹏仔 1天前 #Python
文章标签 长时间
问题内容

我正在使用 pypsexec 连接到远程 windows 计算机。我必须找到具有特定扩展名的文件列表。这就是我现在正在做的事情。

command = "dir /b/s *.py"client.run_executable("cmd.exe", arguments=f"/c {command}", asynchronous=True)

当我没有使用异步参数时,一开始我没有收到任何响应。阅读文档后,我可以看到长时间运行的任务(例如我的任务)应该使用此参数。但是,它没有提供有关如何在作业完成后获取输出的明确说明。

提前致谢!


正确答案


这是因为你无法获得输出。请参阅 https://github.com/jborean93/pypsexec /blob/master/pypsexec/client.py#l436-l466

if not interactive and not asynchronous:    [...] # Here is where stdout and stderr is setelse:    stdout_out = None    stderr_bytes = None[...] # Here is some code that doesn't change stdout_out or stderr_bytesreturn stdout_out, stderr_bytes, return_code

正如您所见,使用 asynchronous=true 时,stdout 和 stderr 将始终为 none