Bagaimana untuk mendapatkan hasil arahan yang berjalan lama dalam pypexec?

WBOY
Lepaskan: 2024-02-12 11:30:05
ke hadapan
1275 orang telah melayarinya

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

Kandungan soalan

Saya menggunakan pypsexec untuk menyambung ke mesin tingkap jauh. Saya perlu mencari senarai fail dengan sambungan tertentu. Itulah yang saya lakukan sekarang.

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

Apabila saya tidak menggunakan parameter async, saya tidak menerima sebarang respons pada mulanya. Selepas membaca dokumentasi, saya dapat melihat bahawa tugasan yang berjalan lama (seperti saya) harus menggunakan parameter ini. Walau bagaimanapun, ia tidak memberikan arahan yang jelas tentang cara mendapatkan output selepas kerja selesai.

Terima kasih terlebih dahulu!


Jawapan betul


Ini kerana anda tidak boleh mendapatkan output. Lihat 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 set
else:
    stdout_out = None
    stderr_bytes = None

[...] # Here is some code that doesn't change stdout_out or stderr_bytes

return stdout_out, stderr_bytes, return_code
Salin selepas log masuk

Seperti yang anda lihat, menggunakan asynchronous=true 时,stdout 和 stderr 将始终为 none

Atas ialah kandungan terperinci Bagaimana untuk mendapatkan hasil arahan yang berjalan lama dalam pypexec?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan