Hagforce Skrevet 1. august 2006 Del Skrevet 1. august 2006 Hei. Er det mulig å lage et vbs script for å utføre følgende. -Start kommando linjen -Telnet til ip 192.168.1.1 -Vent på respons -ingen respons gi melding "ingen kontakt" -ved respons send "passord" -ingen respons gi melding "ingen kontakt" -ved respons send "tast3" -ingen respons gi melding "ingen kontakt" -ved respons send "tast2" -ingen respons gi melding "ingen kontakt" -ved respons send "per" -ingen respons gi melding "ingen kontakt" -ved respons send "tast enter" -ingen respons gi melding "ingen kontakt" -ved respons send "teksten som ligger i fil c:/temp/test.txt" -send "tast enter" Har prøvd å lage noen vbs filer, men er helt på jordet her. Noen som kan si om dette lar seg gjøre (tror da det), og hvilke kommandoer jeg bør bruke. Takker så meget dersom noen tar seg tid til dette. Lenke til kommentar
aadnk Skrevet 2. august 2006 Del Skrevet 2. august 2006 Besynderlig nok fikk jeg ikke STDIN og STDOUT til å fungere med Telnet.exe, hvilket betyr det blir nokså problematisk å avgjøre hvorvidt tilkoblingen fungerer, og hvorvidt de ulike meldingene blir oversendt med suksess. Å sende meldingene i seg selv er imidlertid intet problem: ' Benyttes i eksekveringen av telnetSet WshShell = WScript.CreateObject("WScript.Shell") ' Kjør telnet WshShell.Run "telnet.exe" WScript.Sleep 5000 ' Koble til den angitte datamaskin WshShell.SendKeys "open 192.168.1.2" & Chr(13) WScript.Sleep 5000 WshShell.SendKeys "passord" & Chr(13) WScript.Sleep 2000 WshShell.SendKeys "tast3" & Chr(13) WScript.Sleep 2000 WshShell.SendKeys "tast2" & Chr(13) WScript.Sleep 2000 WshShell.SendKeys "per" & Chr(13) WScript.Sleep 2000 ' ENTER-tasten = Chr(13) WshShell.SendKeys "tast enter" & Chr(13) WScript.Sleep 2000 ' Bruk Scripting.FileSystemObject for å hente ut data fra en tekstfil, dersom det er dét du forsøker å gjøre her WshShell.SendKeys "teksten som ligger i fil c:\temp\text.txt" & Chr(13) WScript.Sleep 2000 ' Avslutt applikasjon/tilkobling WshShell.SendKeys "quit" & chr(13) Lenke til kommentar
Hagforce Skrevet 2. august 2006 Forfatter Del Skrevet 2. august 2006 Takker så meget aadnk Dette fungerer bra. Ja jeg tengte på å hente ut tekst fra en tekst fil og sende det som står på linje 2 feks som du gjør med "WshShell.SendKeys" og deretter enter. Er det mulig, eller må det være komma separert?. Lenke til kommentar
aadnk Skrevet 2. august 2006 Del Skrevet 2. august 2006 Ja jeg tengte på å hente ut tekst fra en tekst fil og sende det som står på linje 2 feks som du gjør med "WshShell.SendKeys" og deretter enter. 6600429[/snapback] Da kan du legge til følgende kode (helt nederst i VBS-filen): Function ReadFile(sFile) ' Objektet vi benytter for å lese tekstfiler Set oFS = CreateObject("Scripting.FileSystemObject") ' Sjekk hvorvidt filen samt filbanen eksisterer If oFS.FileExists(sFile) = True Then ' Åpne tekstfil for lesing (1) Set oTextStream = oFS.OpenTextFile(sFile, 1) ' Returner hele innholdet i tekstfilen ReadFile = oTextStream.ReadAll ' Lukk tekststrøm oTextStream.Close ' Rydd opp Set oTextStream = Nothing End If ' Rydd opp Set oFS = Nothing End Function Deretter kan du simpelthen gjøre således for å lese inn innholdet i en fil: WshShell.SendKeys ReadFile("C:\Test.txt") & Chr(13)WScript.Sleep 2000 Lenke til kommentar
Hagforce Skrevet 2. august 2006 Forfatter Del Skrevet 2. august 2006 Takker så meget igjen aadnk Beklager at jeg maser på deg igjen men... Du skriver at jeg må legge koden for å lese inn tekst filen nederst i scriptet, men skal koden for å sende teksten ligge etter denne igjen, eller kan den ligge hvor som helst i scriptet. Er det mulig å sende en og en linje fra tekstfilen?. Jeg har et senario der jeg ønsker å først sende linje 2 fra tekst filen, deretter div andre ting, så linje 5 fra filen osv. Lar det seg gjøre, eller må det deles opp i separate tekstfiler og leses inn hver for seg?. Er det i såfall bare å bruke ReadFile flere ganger for å lese inn flere filer?. Lenke til kommentar
aadnk Skrevet 2. august 2006 Del Skrevet 2. august 2006 Du skriver at jeg må legge koden for å lese inn tekst filen nederst i scriptet, men skal koden for å sende teksten ligge etter denne igjen, eller kan den ligge hvor som helst i scriptet. 6603469[/snapback] Den kan godt være plassert hvor det skal være, men nederst er nok en grei plassering. Er det mulig å sende en og en linje fra tekstfilen? 6603469[/snapback] Last inn hele tekstfilen og bruk Split() til å dele opp strengen i linjer: aLines = Split(ReadFile("C:\Test.txt"), vbNewLine) Deretter kan du simpelthen avlese hver linje i filen således: MsgBox aLines(0) ' 0 = første linje, 1 = andre linje, etc. Lenke til kommentar
Hagforce Skrevet 2. august 2006 Forfatter Del Skrevet 2. august 2006 Blir det ca sånn Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run "telnet.exe" WScript.Sleep 5000 WshShell.SendKeys "open 192.168.0.1" & Chr(13) WScript.Sleep 5000 WshShell.SendKeys "passord" & Chr(13) WScript.Sleep 2000 aLines = Split(ReadFile("C:\Test.txt"), vbNewLine) WshShell.SendKeys MsgBox aLines(0) & Chr(13) WScript.Sleep 2000 WshShell.SendKeys "tast3" & Chr(13) WScript.Sleep 2000 WshShell.SendKeys "tast2" & Chr(13) WScript.Sleep 2000 WshShell.SendKeys MsgBox aLines(3) & Chr(13) WScript.Sleep 2000 WshShell.SendKeys "per" & Chr(13) WScript.Sleep 2000 WshShell.SendKeys MsgBox aLines(5) & Chr(13) WScript.Sleep 2000 WshShell.SendKeys "enter" & Chr(13) WScript.Sleep 2000 WshShell.SendKeys "quit" & chr(13) Function ReadFile(sFile) Set oFS = CreateObject("Scripting.FileSystemObject") If oFS.FileExists(sFile) = True Then Set oTextStream = oFS.OpenTextFile(sFile, 1) ReadFile = oTextStream.ReadAll oTextStream.Close Set oTextStream = Nothing End If Set oFS = Nothing End Function Lenke til kommentar
aadnk Skrevet 2. august 2006 Del Skrevet 2. august 2006 Sløyf MsgBox før aLines() (MsgBox brukes kun for å vise en meldingsboks med den angitte verdien). Lenke til kommentar
Hagforce Skrevet 3. august 2006 Forfatter Del Skrevet 3. august 2006 Hei, dette var gøy :!: Du har ikke noen gode referanse sider for slike kommandoer, eller bør jeg bruke et programm?. Fikk lyst til å lage mer... Er det mulig å få en tekst boks til å poppe opp der jeg skriver inn noe og klikker ok, deretter blir den sendt per telnet?. Lenke til kommentar
aadnk Skrevet 3. august 2006 Del Skrevet 3. august 2006 (endret) Er det mulig å få en tekst boks til å poppe opp der jeg skriver inn noe og klikker ok, deretter blir den sendt per telnet?. 6607751[/snapback] Såklart. Bruk InputBox: WshShell.SendKeys InputBox("Skriv en tekst") & Chr(13) Ellers kan du sikert ta en titt på Wikibooks for å lære deg litt Visual Basic. Endret 3. august 2006 av aadnk Lenke til kommentar
backup Skrevet 11. august 2006 Del Skrevet 11. august 2006 (endret) Inputbox er eneste brukerinterface inkludert i vbs. Imidlertid, ved hjelp av IE kan man lage brukerinterfacer som man vil ha dem i vbs. Her følger test.vbs jeg har laget for å demonstrere en enkel meldingsboks man kan bruke i vbs: Set oIE = WScript.CreateObject("InternetExplorer.Application") oIE.left=100: oIE.top = 100: oIE.height = 100: oIE.width = 220 oIE.menubar = 0: oIE.toolbar = 0: oIE.statusbar = 0 path = WScript.ScriptFullName path = Left(path, InstrRev(path, "\")) oIE.navigate path & "filbox.htm" oIE.visible = 1 Do While (oIE.Busy) WScript.Sleep 100 Loop Set WshShell = WScript.CreateObject("WScript.Shell") Set knappen = oIE.document.getElementById ("knapp") Set knappen.onclick = GetRef ("sende") Sub sende Set feltet = oIE.document.getElementById ("felt") wscript.sleep 1000 wshshell.run ("notepad.exe") wscript.sleep 1000 WshShell.SendKeys feltet.value End sub ready = false Do Until ready WScript.Sleep 100 Loop Selve brukerinterfacen er filbox.htm som følger her: <title> Min InputBox</title> Data:<input type = text size = 10 name = felt> <input type = button name = knapp value = Send> Lagre filbox.htm i samme mappe som test.vbs. Dobbelklikk test.vbs, tast inn data i meldingsboksa og klikk på sendknappen, og data kommer opp i notepad.exe. Endret 11. august 2006 av backup Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå