2016-05-14 12 views
0

ich das tcl läuft mit der Verwendung von Perl (das Skript hat erwarten),Ausführen von TCL (erwarten Skript) unter Verwendung von Perl auf Windows

system("C:/Tcl/bin/tclsh86 C:/Users/sysadmin/desktop/expect.tcl"); 

Es ist nicht die alle Befehle im Skript ausgeführt wird, aber seine adaequat auf Ubuntu. Welchen Befehl sollte ich verwenden, um dies komplett per Perl unter Windows auszuführen?

+0

Haben Sie den TCL-Compiler in Windows installiert? – mkHun

+0

Ja, ich habe installiert (tclsh86), es zeigt keinen Fehler, aber das vollständige tcl (expect) -Skript wird nicht ausgeführt – john

+0

Woher wissen Sie, dass es nicht alle Befehle ausführt? zeig uns etwas. –

Antwort

0

On Unix Expect funktioniert mit virtuellen Terminals. Im Gegensatz dazu verwendet Expect unter Windows das Debugging-Subsystem. (Es gibt nichts wie wie virtuelle Terminals unter Windows.) Dies hat die Unterseite, dass Programme, die als nicht zu debuggen markiert sind (dh einige Systemprogramme, einschließlich telnet.exe obwohl ftp.exe möglicherweise auch auf dieser Liste sein) kann nicht automatisiert werden von Erwarten überhaupt. Das Betriebssystem verweigert Expect nur die Verbindung mit dem Prozess.

Ist das was passiert mit dir? Ich kann nicht von den minimalen Informationen, die Sie gegeben haben, erzählen, aber es ist bei weitem der häufigste Grund für Probleme mit der Portierung eines Expect-Skripts zwischen Plattformen (sobald Sie alltägliche Dinge wie verschiedene Pfade und Programme, die nur aren sind, berücksichtigt haben) 't There auf allen Plattformen).

Die obere Seite ist, dass sowohl Tcl als auch Perl durchaus in der Lage sind, direkt mit allem zu sprechen, was Sie verwenden würden (da beide bei TCP/IP vollkommen kompetent sind) . In der Tat, beide sind wahrscheinlich besser darin, es nativ zu tun als alles, was Sie wahrscheinlich durch den Einsatz von Expect erreichen würden.