Выполнение пакетных команд через последовательное соединение PuTTY

1941
foxymop

У меня есть последовательность команд, которую я использую для обновления прошивки на моем компьютере с Linux. Когда я подключаюсь к машине с помощью последовательного соединения, я могу набирать команды одну за другой, и они работают нормально. Я хотел бы автоматизировать эту процедуру, запустив команды в командном файле.

У меня есть профиль для моего последовательного соединения, сохраненный как «i5IS-COM4», поэтому я запускаю свой первый пакетный файл «send.bat», который гласит:

commands.bat | putty -load i5IS-COM4 

и command.bat читает:

echo "this command works!" 

Когда я запускаю send.bat, он правильно открывает терминал и подключается к моей машине с Linux, но команда echo не работает. Если бы кто-нибудь мог помочь мне заставить мой пакетный файл работать, это было бы очень признательно!

Я просмотрел следующий пост и ряд других, но мне еще предстоит найти решение моей проблемы.

Запуск нескольких команд из файла после входа в PuTTY из файла bat

редактировать:

Когда я использую перенаправление команд, используя plink вместо putty, я просто получаю пустой терминал. Выполнение следующей команды: start plink.exe -load i5IS-COM4 < commands.txt с commands.txt следующим образом: echo "this command works!"; /bin/bash возвращает следующий терминал: enter image description here

3

1 ответ на вопрос

2
Martin Prikryl

PuTTY - это приложение с графическим интерфейсом, а не консольное приложение. Вы не можете использовать перенаправление ввода / вывода с приложением GUI.

Невозможно выполнить команду на сервере автоматически с помощью PuTTY через последовательное соединение.


Хотя вы должны быть в состоянии использовать Plink (инструмент подключения командной строки PuTTY) .

Plink является эквивалентом PuTTY, за исключением того, что это консольное приложение, поэтому вы можете использовать перенаправление ввода / вывода с ним:

commands.bat | plink -load i5IS-COM4 

Хотя, поскольку ваш файл "bat" на самом деле является не пакетным файлом (который будет генерировать команды для устройства), а текстовым файлом, который непосредственно содержит команды для устройства, вы хотите использовать содержимое файла в качестве входных данных, а не вывод его исполнения:

plink -load i5IS-COM4 < commands.bat 
Спасибо за ваш ответ, Мартин. Я использовал plink вместо PuTTY, и я могу открыть терминал, но ни синтаксис, который вы опубликовали, ни 'start plink.exe -load i5IS-COM4 <commands.bat' не выполнили мои команды. foxymop 6 лет назад 0
Так, что это сделало? Показать нам. Martin Prikryl 6 лет назад 0
Я открываю терминал и захожу на свой Linux-сервер, затем запускаю командный файл, содержащий следующую строку: `start plink.exe -load i5IS-COM4 <commands.txt` command.txt содержит следующую строку:` echo "этой команды работает!"; / bin / bash` Когда я запускаю командный файл, я просто получаю пустой терминал plink, и если я нажимаю Enter, я получаю приглашение от пользователя root. foxymop 6 лет назад 0
Почему `начать`? Это не имеет смысла. Убери это. Martin Prikryl 6 лет назад 0
Спасибо Мартин! Мне просто нужно было удалить 'start' из моего файла и изменить окончания строк на Unix в моем текстовом редакторе, теперь я могу запускать последовательность команд через plink! foxymop 6 лет назад 0