windows - betingede udsagn i batch script ved hjælp af telnet kommando

Indlæg af Hanne Mølgaard Plasc

Problem



Hej jeg ved ikke meget om windows scripting, men jeg har denne sag, hvor jeg har brug for at oprette forbindelse til min e-mail-server med forskellige protokoller til testning, og jeg skal telnet dem konstant, hvilket er meget ubrugeligt ting at gøre igen og igen så jeg troede Jeg skal skrive et windows script, så jeg kan automatisere at skulle skrive det samme igen og igen.


Dette er hvad jeg har hidtil:


echo off
title Login to Mail using IMAP,POP3 and SMTP
echo Please enter the protocol required (POP3=1,IMAP=2,SMTP=3)&  
set /P id= Enter Value :
echo You have selected option :\%id\%
IF \%id\%==1(
   telnet <ip address> 110
   user user@example.com
   pass 123
)
IF \%id\%==2(
   telnet <ip address> 143
   a login user@example.com 123
)
IF \%id\%==3(
   telnet <ip address> 25
   helo r
   auth login
   <base64encodedusername>
   <base64encodedpassword>
)


Kommandoererne fungerer som forventet, når jeg skriver dem på cmd, men det ville ikke virke i batchfilen. Jeg antager min syntaks for betingede udsagn er synderen, men jeg er ikke sikker. Kan nogen hjælpe?

Bedste reference


Der er et problem med din betingede syntaks. Det skal være: IF \%id\%==1 ( og så videre med et mellemrum foran start parentesen. På ss64 er en god vejledning om condionally udførelse af kommandoer. [8]


Men også efter korrektionen vil det ikke arbejde, da kommandoen telnet er ikke skrivbar i Windows-batch. Det betyder, at efter den første telnet kommando vil dit batch script sidde fast i det, og ingen anden kommando vil blive udført. Se på dette så spørgsmålet om at bruge telnet i batch. Der er flere svar, der viser måder, hvordan du udfører din opgave.


Dette svar fungerer for flere personer ifølge kommentarerne. Det bruger start telnet.exe <IP> og et Visual Basic Script (.vbs) til at simulere nøgleslag. Citat af denne anwer:



  

Batchfil (navngivet Script.bat):



:: Open a Telnet window
start telnet.exe 192.168.1.1
:: Run the script 
cscript SendKeys.vbs 

  
  

Kommandofil (navngivet SendKeys.vbs):



set OBJECT=WScript.CreateObject("WScript.Shell")
WScript.sleep 50 
OBJECT.SendKeys "mylogin{ENTER}" 
WScript.sleep 50 
OBJECT.SendKeys "mypassword{ENTER}"
WScript.sleep 50 
OBJECT.SendKeys " cd /var/tmp{ENTER}" 
WScript.sleep 50 
OBJECT.SendKeys " rm log\_web\_activity{ENTER}" 
WScript.sleep 50 
OBJECT.SendKeys " ln -s /dev/null log\_web\_activity{ENTER}" 
WScript.sleep 50 
OBJECT.SendKeys "exit{ENTER}" 
WScript.sleep 50 
OBJECT.SendKeys " "