Saya ingin menjalankan skrip Python dari AutoIt menggunakan ShellExecuteWait(). Upaya saya:

$x = ShellExecuteWait("E:/Automation/Python/Scripts/ReadLog.py", '-f "file.log" -k "key" -e "errMsg" ')
MsgBox(0,"x=",String($x))
If @error Then
    MsgBox(0,"Error=",String(@error))
EndIf

Saya dapat melihat beberapa id proses di $x, dan @error juga disetel ke 0 (berarti AutoIt mengeksekusi skrip). Tetapi skrip Python saya tidak memberikan hasil (ia menulis ke file txt saat dijalankan secara independen). Tampaknya masalahnya adalah dengan melewatkan argumen baris perintah seperti:

ShellExecuteWait("E:/Automation/Python/Scripts/ReadLog.py", '-f "file.log" -k "key" -e "errMsg" ')

Bagaimana saya bisa meneruskan argumen baris perintah menggunakan ShellExecuteWait()? Sintaksis:

ShellExecuteWait ( "nama file" [, "parameter" [, "workingdir" [,"kata kerja" [, showflag]]]])

Parameter:

nama file :- Nama file yang akan dijalankan (EXE, .txt, .lnk, dll).

parameter :- [opsional] Parameter apa saja untuk program. Kosong ("") tidak menggunakan apa pun.

Ini melewatkan contoh untuk penggunaan parameter. Tidak ada masalah dengan skrip Python (membutuhkan 3 argumen baris perintah, string dengan opsi -f, -k dan -e).

Terkait: Cara menjalankan atau mengeksekusi file python dari autoit.

0
BreakBadSP 18 Agustus 2017, 16:26

2 jawaban

Jawaban Terbaik

Periksa jalur ke biner Python Anda (mis. Python.exe, di mana pun program/biner Python Anda berada) di lingkungan/jalur sistem Windows Anda.

Jalankan skrip Python dari AutoIt Jika jalurnya ada maka kode Anda harus berfungsi. Di $x Anda akan menerima kode keluar kembali dari skrip Python.

Anda juga dapat mencoba:

RunWait('full_path\Python.exe ReadLog.py -f "file.log" -k "key" -e "errMsg"', 'full_path_of_working_directory')
0
user4157124 18 Januari 2018, 16:37

AutoIt tidak menjalankan program/skrip eksternal sampai Anda melewati direktori kerja (parameter opsional untuk semua perintah eksekusi dan jalankan). Jadi lewati direktori kerja sebagai parameter terpisah dan itu akan berfungsi:

RunWait('full_path\Python.exe ReadLog.py -f "file.log" -k "key" -e "errMsg"', 'full_path_of_working_directory')
0
user4157124 18 Januari 2018, 16:43