Автоматизация сценариев Telnet из .bat с экземпляром teampeak

Функциональная часть скрипта:

telnet 62.141.39.173 10011

login serveradmin passwordredactedforsecurityreasons

gm msg=test Message\\sAll

Это работает, когда я вставляю его непосредственно в CMD, но не когда я запускаю его из файла .bat. Я не уверен, почему это так, и мне нужно обходное решение.

Вторая часть моей проблемы заключается в том, что мне нужно автоматизировать этот процесс и зацикливать его каждые десять минут. Это а) не будет работать в файле .bat по причинам, описанным выше, и б) даже не зарегистрируется.

:start

timeout /T 600

telnet 62.141.39.173 10011 

login serveradmin passwordredactedforsecurityreasons

gm msg=test Message\\sAll

close

quit

goto start

Помощь!


person GeekSqueak    schedule 07.06.2015    source источник
comment
Не могли бы вы отформатировать это? Есть ли в вашем пароле % или @ или другие «странные» символы?   -  person Marged    schedule 07.06.2015
comment
Никаких странных символов, только буквенно-цифровые A-Z и 1-9. Это сценарий, как я его написал.   -  person GeekSqueak    schedule 07.06.2015
comment
Telnet не видит команды входа в систему и т. д. Вы можете использовать перенаправление ввода-вывода и читать команды с помощью telnet ... ‹ commands.txt   -  person Marged    schedule 07.06.2015
comment
Поэтому я бы написал файл commands.txt и сослался на него, например, telnet 62.141.39.173 10011 telnet commands.txt close quit goto start ??   -  person GeekSqueak    schedule 07.06.2015


Ответы (1)


Попробуйте так. Поместите команды в простой текстовый файл:

команды.txt:

login serveradmin passwordredactedforsecurityreasons
gm msg=test Message\sAll
close

А затем вызовите telnet следующим образом:

telnet 62.141.39.173 10011 < commands.txt

Мне не нужно упоминать, что использование telnet для передачи паролей в незашифрованном виде не является хорошей идеей? ;-)

Если это не сработает (к сожалению, у меня нет под рукой сервера telnet для тестирования), возможно, в этом сообщении SO есть правильный ответ для вас: Как автоматизировать сеанс Telnet без ключей SendKeys

Если ваш сервер доступен в Интернете, я рекомендую вам не отправлять пароль через telnet. Если это вариант, лучше туннелируйте данные через ssh и выставляйте только те функции teampeak, которые должны быть доступны через telnet.

person Marged    schedule 07.06.2015
comment
Ну, он читает файл и зацикливает сценарий, но на самом деле не выполняет задачу. - person GeekSqueak; 07.06.2015
comment
Изменить: он пропускает файл и просто возвращается к началу скрипта, выполняя всю последовательность тайм-аута. - person GeekSqueak; 07.06.2015