Ich möchte ein Python-Skript von AutoIt mit ShellExecuteWait()
ausführen. Mein Versuch:Ausführen eines externen Programms mit Befehlszeilenargumenten
$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
ich einige Prozess-ID in $x
sehen können, und @error
wird auch auf 0
(bedeutet AutoIt das Skript ausgeführt wird). Aber mein Python-Skript produziert keine Ergebnisse (es schreibt in eine TXT-Datei, wenn es unabhängig ausgeführt wird). Scheint, das Problem ist, wie Kommandozeilenparameter mit übergeben:
ShellExecuteWait("E:/Automation/Python/Scripts/ReadLog.py", '-f "file.log" -k "key" -e "errMsg" ')
Wie kann ich Argumente Befehlszeile ShellExecuteWait()
geben? Syntax:
ShellExecuteWait ("Dateiname" [, "Parameter" [ "workingdir" [ "Verb" [, showflag]]]])
Parameter:
Dateiname: - The Name der auszuführenden Datei (EXE, .txt, .lnk usw.).
Parameter: - [optional] Alle Parameter für das Programm. Leer ("") verwendet keine.
Dies enthält Beispiele für die Verwendung von Parametern. Es gibt keine Probleme mit dem Python-Skript (es erfordert 3 Befehlszeilenargumente, Zeichenfolgen mit den Optionen -f
, -k
und -e
).
In Verbindung stehend: How to run or execute python file from autoit.
[Verwandte] (https://www.autoitscript.com/forum/topic/189963-how-to-pass-command-line- Argumente-zu-Programm-Python-from-runwait /). – user4157124