AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / computer / Perguntas / 1528228
Accepted
an531
an531
Asked: 2020-02-26 09:08:33 +0800 CST2020-02-26 09:08:33 +0800 CST 2020-02-26 09:08:33 +0800 CST

Como passar comandos para uma janela telnet com um script em lote?

  • 772

Estou tentando controlar um dispositivo wi-fi com um script em lote usando o comando telnet no Windows 7, mas não sei como passar os comandos para a janela do telnet. Isso fará parte de um script mais longo ajustando outros dispositivos e configurações do PC.

Posso fazer isso manualmente executando telnet <IP address> 55443cmd.exe, que cria uma nova janela. Nessa janela, posso escrever os comandos para o dispositivo e ele funciona conforme o esperado. No entanto, quando escrevo o código no script, assim:

telnet <IP address> 55443 <device commands>

Eles <device commands>não são passados ​​para a janela telnet recém-criada.

windows command-line
  • 1 1 respostas
  • 24718 Views

1 respostas

  • Voted
  1. Best Answer
    Io-oI
    2020-02-27T06:44:22+08:002020-02-27T06:44:22+08:00


    O comando telnet não oferece muitas opções para inserir alguns comandos...


    Vou deixar aqui duas opções possíveis

    • Para fazer em bat / cmd com vbs

    • Para fazer isso com o console de software chamado Telnet Script Tool

    • Option #1usando bat e vbs ...

    Uma opção seria usar SendKey/VBS muito útil para enviar chaves, comandos etc., irá enviar suas entradas/tipo enviá-los para interfaces telnet instância/sessão...

    Abaixo um exemplo de utilização de SendKey/VBS para enviar dados de login/input por arquivo bat e que gera em tempo de execução o arquivo VBS para realizar esta tarefa .

    @echo off 
    setlocal enabledelayedexpansion 
    
    echo/ && cls && color 9F
    %__APPDIR__%mode.com 77,30
    
    set "_user_=cisco_user"
    set "_pwd_=my_secret_pwd"
    set "_temp_vbs=%tmp%\_tmp_file_vbs_.vbs"
    
    >"!_temp_vbs!"^
        (
         echo/ Set WshShell = WScript.CreateObject^("WScript.Shell"^)
         echo/ Set objShell = WScript.CreateObject^("WScript.Shell"^)
         echo/ StrPwd  = "!_pwd_!"
         echo/ StrUser = "!_user_!"
         echo/ for i=1 To Len^(StrUser^)
         echo/     x = Mid^(StrUser,i,1^)
         echo/     WshShell.SendKeys x
         echo/     Wscript.Sleep 250
         echo/ Next
         echo/ Wscript.Sleep 500
         echo/ WshShell.SendKeys "({ENTER})"
         echo/ for j=1 To Len^(StrPwd^)
         echo/     x = Mid^(StrPwd,j,1^)
         echo/     WshShell.SendKeys x
         echo/     Wscript.Sleep 200
         echo/ Next 
         echo/ Wscript.Sleep 200
         echo/ Wscript.Sleep 200
         echo/ WshShell.SendKeys "dir"
         echo/ Wscript.Sleep 200
         echo/ WshShell.SendKeys "({ENTER})"
         echo/ Wscript.Sleep 200
         echo/ WshShell.SendKeys "quit"
         echo/ Wscript.Sleep 200
         echo/ WshShell.SendKeys "({ENTER})"
         ) && %__APPDIR__%telnet.exe 192.168.0.254 
         
    "%__APPDIR__%cScript.exe" //nologo "!_temp_vbs!"
    2>nul >nul del /q /f "!_temp_vbs!" & endlocal & goto :EOF
    

    Você pode considerar ver esta questão , por que telnet.exenão está sendo executado em bat / cmd .

    Para corrigir isso, aplique este comando na linha de comando (isso requer direitos de administrador) e execute este comando apenas uma vez

    for /f %i in ('%__APPDIR__%where /r "C:\Windows\System32" "telnet.exe.mui" ^|%__APPDIR__%findstr.exe [a-z]\-[A-Z] ')do for %C in ("%windir%\system32\.","%windir%\SysWOW64\.")do if exist "%~C." copy /y "%~i" "%~C"
    

    • Option #2usando a ferramenta de script Telnet ...

    Telnet Scripting Tool é um utilitário para automatizar sessões telnet (como chamar dip em um sistema Linux ou fazer manutenção de roteador, por exemplo).

    A Telnet Script Tool também pode enviar entradas para telnet...

    Basicamente, este software lê a tela e procura uma string de predição que você irá informar para aguardar o próximo comando a ser enviado para telnet pelo software...

    Abaixo está um exemplo de uso da Telnet Script Tool que envia entradas de comando usando o conteúdo de um arquivo de texto : "%temp%\script_ts.scr"

    @echo off 
    
    setlocal enabledelayedexpansion 
    
    %__APPDIR__%mode.com 77,30
    echo/ && color 9F && echo/
    
    set "_user_=my_user_name"
    set "_pwd_=my_secret_pwd"
    set "_ip_door_=10.0.50.1 23"
    
    >"%temp%\script_ts.scr" ^
        (
         echo=!_ip_door_!
         echo=WAIT "User Name"
         echo=SEND "!_user_!\m"
         echo=WAIT "Passoword"
         echo=SEND "!_pwd_!\m"
        ) && "%temp%\TST10.exe" /r:"%temp%\script_ts.scr" /o:"%temp%\output_ts.txt"
    endlocal & goto :EOF
    


    • Atualização v2 - Portar bat com sendkey para o seu comando (string):
     {"id":0,"method":"set_power","params":["on","smooth",500]}

    Para usar Send Keyem seu comando com muitos caracteres especiais, você precisa escapar{:)}

    @echo off && setlocal enabledelayedexpansion 
    
    echo/ && cls && color 9F && %__APPDIR__%mode.com 77,30 && set "_temp_vbs=%tmp%\_tmp_file_vbs_.vbs" && >"!_temp_vbs!"^
      (    
       echo= On Error Resume Next
       echo= Set WshShell = WScript.CreateObject("WScript.Shell"^)
       echo= Set ObjShell = WScript.CreateObject("WScript.Shell"^)
       echo= Wsh.sleep 2000 'adjust this timeout for your needs
       echo= ObjShell.AppActivate "MS Telnet CMD" 
       echo= Wsh.sleep 333
       echo= WshShell.SendKeys "o 192.168.0.1 55443~"
       echo= Wsh.sleep 1500
       echo= WshShell.SendKeys "({{}{""}id{""}:0,{""}method{""}:{""}set_power{""},{""}params{""}{:}{[}{""}on{""},{""}smooth{""},500{]}{}}})"
       echo= Wsh.sleep 50
       echo= WshShell.SendKeys "~"
       echo= Wsh.sleep 50
       echo= WshShell.SendKeys "^]"
       echo= Wsh.sleep 50
       echo= WshShell.SendKeys "quit~"
      ) && pushd %windir%\system32\ & title <nul && title MS Telnet CMD
    
    start "" /b "%__APPDIR__%cScript.exe" //nologo "!_temp_vbs!" && call telnet.exe 
    
    :loop
    tasklist.exe /nh | findstr.exe /i cscript.exe >nul && goto :loop
    2>nul >nul del /q /f "!_temp_vbs!" & popd & endlocal & exit
    
    • Ferramenta de script Telnet
    • Ferramenta de script Telnet - Pergunta/Resposta
    • SendKey e o escape para caracteres especiais
    • 5

relate perguntas

  • Qual seria o equivalente em lote do argumento "pass" do Python?

  • Não é possível ativar o Microsoft Print to PDF depois de desativado

  • Comunique-se com o daemon do Docker no Windows

  • atalho do shell da área de trabalho no painel lateral do explorer

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como posso reduzir o consumo do processo `vmmem`?

    • 11 respostas
  • Marko Smith

    Baixar vídeo do Microsoft Stream

    • 4 respostas
  • Marko Smith

    O Google Chrome DevTools falhou ao analisar o SourceMap: chrome-extension

    • 6 respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Martin Hope
    CiaranWelsh Como posso reduzir o consumo do processo `vmmem`? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Pesquisa do Windows 10 não está carregando, mostrando janela em branco 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    v15 Por que uma conexão de Internet gigabit/s via cabo (coaxial) não oferece velocidades simétricas como fibra? 2020-01-25 08:53:31 +0800 CST
  • Martin Hope
    fixer1234 O "HTTPS Everywhere" ainda é relevante? 2019-10-27 18:06:25 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve