Ausführen von Batchbefehlen über die serielle Verbindung von PuTTY

1868
foxymop

Ich habe eine Folge von Befehlen, mit denen ich die Firmware auf meinem Linux-Rechner aktualisiert. Wenn ich mich über eine serielle Verbindung mit dem Computer verbinde, kann ich die Befehle einzeln eingeben und sie funktionieren einwandfrei. Ich möchte diese Prozedur automatisieren, indem Sie die Befehle in einer Batchdatei ausführen.

Ich habe ein Profil für meine serielle Verbindung, das als "i5IS-COM4" gespeichert ist. Ich starte also meine erste Stapeldatei "send.bat", die wie folgt lautet:

commands.bat | putty -load i5IS-COM4 

und command.bat liest:

echo "this command works!" 

Wenn ich 'send.bat' starte, wird ein Terminal korrekt geöffnet und eine Verbindung zu meinem Linux-Computer hergestellt, der Befehl echo funktioniert jedoch nicht. Wenn mir jemand helfen könnte, meine Batch-Datei zum Laufen zu bringen, wäre ich sehr dankbar!

Ich habe mir den folgenden Beitrag und einige andere angesehen, aber ich habe noch keine Lösung für mein Problem gefunden.

Führen Sie mehrere Befehle aus einer Datei aus, nachdem Sie sich aus einer bat-Datei bei PuTTY angemeldet haben

bearbeiten:

Wenn ich die Befehlsumleitung mit plink anstelle von putty verwende, bekomme ich nur ein leeres Terminal. Führen Sie den folgenden Befehl aus: start plink.exe -load i5IS-COM4 < commands.txt mit Befehlen.txt wie folgt: echo "this command works!"; /bin/bash Das folgende Terminal wird zurückgegeben: enter image description here

3

1 Antwort auf die Frage

2
Martin Prikryl

PuTTY ist eine GUI-Anwendung, keine Konsolenanwendung. Sie können die Eingabe / Ausgabe-Umleitung nicht mit einer GUI-Anwendung verwenden.

Es ist nicht möglich, einen Befehl auf dem Server automatisch mit PuTTY über eine serielle Verbindung auszuführen.


Sie sollten jedoch Plink (PuTTY-Befehlszeilen-Verbindungstool) verwenden können .

Plink ist ein Äquivalent zu PuTTY, außer dass es sich um eine Konsolenanwendung handelt, sodass Sie die Eingabe- / Ausgabeumleitung verwenden können:

commands.bat | plink -load i5IS-COM4 

Ihre "bat" -Datei ist zwar keine Batch-Datei (die die Befehle für das Gerät erzeugen würde), sondern eine Textdatei, die die Befehle für das Gerät direkt enthält. Sie möchten jedoch den Inhalt der Datei als Eingabe verwenden. anstatt Ausgabe seiner Ausführung:

plink -load i5IS-COM4 < commands.bat 
Danke für deine Antwort, Martin. Ich habe plink anstelle von PuTTY verwendet und kann ein Terminal öffnen, aber weder die von Ihnen gepostete Syntax noch 'start plink.exe -load i5IS-COM4 <befehle.bat' haben meine Befehle erfolgreich ausgeführt. foxymop vor 6 Jahren 0
Also, was hat es gemacht? Zeig uns. Martin Prikryl vor 6 Jahren 0
Ich öffne ein Terminal und melde mich bei meinem Linux-Server an. Dann führe ich die Batchdatei aus, die die folgende Zeile enthält: `start plink.exe -load i5IS-COM4 <befehle.txt` -Befehle.txt enthält die folgende Zeile:` echo 'dieser Befehl funktioniert! "; / bin / bash` Wenn ich die Batch-Datei starte, erhalte ich nur ein leeres Plink-Terminal und wenn ich die Eingabetaste drücke, bekomme ich eine Aufforderung vom Root-Benutzer. foxymop vor 6 Jahren 0
Warum "anfangen"? Das macht keinen Sinn. Entfernen Sie es. Martin Prikryl vor 6 Jahren 0
Danke Martin! Ich musste nur den Start aus meiner Datei entfernen und die Zeilenenden in Unix in meinem Texteditor ändern. Jetzt kann ich eine Folge von Befehlen durch plink ausführen! foxymop vor 6 Jahren 0