2008-10-26 8 views
6

Ich habe eine Anwendung nur unter Windows und eine Batch-Datei, die es startet. Ich möchte diese Batch-Datei von Linux aufrufen, was bedeutet, dass etwas wie Linux-Batch den Windows-Batch mit Parametern starten wird und dies wiederum meine Anwendung ausführen.Aufrufen von Windows-Batch-Datei von Linux

Kann ich das tun? Wie?

Antwort

11

Sie könnten einen SSH-Server in dem Windows-Box (Cygwin hat), dann von Linux etwas tun, wie installieren:

ssh [email protected] c:/path/to/batch.cmd 

und das sollte Ihre Anwendung in der Windows-Box starten.

+0

Das funktionierte für mich, aber der Pfad war relativ und folgte der Linux-Syntax, also 'ssh user @ windows-box/batch.bat' –

0

Unser Build-Prozess geht derzeit in die andere Richtung: Ein Windows-Server startet Dinge auf dem Linux-Server mit plink (Teil von PuTTY). Möglicherweise können Sie etwas Ähnliches einrichten.

0

Dies kann ein Sicherheitsproblem verursachen. Unsere Informationssicherheitsperson erlaubte mir nicht, irgendwelche Programme direkt aufzurufen.

Der sicherere Weg ist Server auf Windows-Computer einzurichten. Dies kann zum Beispiel ein Webserver sein. Und dann rufen Sie Ihren Prozess im PHP/Perl/Python-Skript auf.

1

Der direkteste Weg ist wahrscheinlich einen SSH-Server auf dem Windows-Rechner zu installieren. Cygwin enthält einen SSH-Server.

Je nachdem, wie präzise Ihre Timing-Anforderungen sind, können Sie möglicherweise einen "at" -Auftrag in der Windows-Box haben, der regelmäßig ausgeführt wird (alle 5 Minuten?) Und ausgeführt wird, wenn er sieht, dass eine bestimmte Datei existiert Datei. Dann könnten Sie Samba/smbclient verwenden, um die Datei zu erstellen. Sie müssten Filesharing auf der Windows-Box aktivieren, damit dies funktioniert.

Wenn die Windows-Box über einen Webserver verfügt, können Sie eine CGI schreiben und sie mit wget oder cURL auslösen.

0

Sehen Sie sich auch winexe an, mit dem Sie Windows-Befehle/Batch-Skripts ausführen können, ohne den SSH-Server auszuführen.