Подача ввода в интерактивное приложение командной строки

Я хочу передавать входные данные в интерфейс командной строки для Cisco AnyConnectvpncli.exe(v2.3 )для автоматизации соединения (re ). Он не принимает имя пользователя и пароль в качестве аргументов командной строки, а считывает их в интерактивном режиме от пользователя через интерфейс командной строки.

Проблема в том, что вход по конвейеру на vpncli.exe, похоже, не работает для пароля. Он работает для всего, кроме пароля.Так что подобные вещи не работают:

vpncli.exe < input.txt
type input.txt | vpncli.exe

Приложение просто зависает там, где запрашивает пароль.


Ниже приведен пример нормального (рабочего )исполнения, когда пользователь вводит параметры:

Example vpncli.exe run

Обратите внимание, как символы пароля преобразуются в *.


Использование таких инструментов, как AutoIt или AutoHotKey, для отправки входных данных в окно командной строки работает, но это неуклюжий и хрупкий (не работает, если инструмент не может получить доступ к окну командной строки по какой-либо причине ).


Есть ли способ отправить входные данные в такое интерактивное приложение CLI с помощью PowerShell?

(Или с помощью любого другого языка сценариев или каких-то других средств?)

14
задан Qtax 14 July 2012 в 21:10
поделиться