Лучшее решение, которое я нашел для этого, это отправить команды для извлечения из текстового файла, например так:
plink username@host -pw password < commands.txt
Последняя проблема, с которой я столкнулся, заключалась в том, что при таком способе он выводил обычный сеанс, включая сообщение-заставку, которое добавляло много строк в мои очень тщательно обработанные результаты запроса. В моей ситуации это было относительно легко обойти, так как строки с данными, которые я хочу начать с целых чисел, а все остальные строки начинаются со смешанных символов, поэтому я мог просто встроить простую проверку «если% A равно +% A», чтобы отсеять бесполезная информация.
Для тех, кто заинтересован, так выглядит моя однострочная команда:
for /f "tokens=1,2,3,7" %A in ('plink user@host -pw pass ^< commands.txt') do @if %A equ +%A for /f "tokens=2 %E in ('plink user@host -pw pass "command using %C from first command"') do @if not %D == %E @echo %B %C %D %E >> outputfile.txt
Он извлекает список и фильтрует его, как описано выше, а затем использует каждую строку списка для запуска второй команды для сравнения определенного бита информации. Если обнаружено несоответствие, соответствующая информация удаляется в выходном файле.
Теперь, если бы я мог просто понять, как создавать переменные подсказки, которые я могу использовать встроенными. Windows 10 обрабатывает их по-разному, и они работают не так, как в предыдущих версиях.
(да, это было бы легко в пакетном файле, но нелепые политики безопасности не позволяют мне запускать пакетные файлы, которые значительно облегчили бы мою работу. Поэтому я создаю такие вещи, как это чудовище.)