Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

IP-Auslesen Batch Einzeiler in VBS

Frage Entwicklung VB for Applications

Mitglied: ZeXoRs

ZeXoRs (Level 1) - Jetzt verbinden

09.07.2012 um 08:35 Uhr, 6634 Aufrufe, 8 Kommentare

Hi nichts großes bin ein totaler Newbie in VB-Script...

Könnte mir jemand diesen Einzeiler in VBS schreiben?
for /f "skip=1 tokens=2 delims=[]" %%* in ('ping.exe -n 1 -4 %computername%') Do (set "IP=%%*")

Danke schon mal im Vorraus
Schönes Wochenende
ZeXoRs
Mitglied: 76109
09.07.2012 um 13:38 Uhr
Hallo

In etwa so:
01.
    Dim sComputer, sStdOut, sIP 
02.
     
03.
    With CreateObject("WScript.Shell") 
04.
        sComputer = .Environment("Process").Item("Computername") 
05.
        sStdOut = .Exec("Ping -n 1 -4 " & sComputer).StdOut.ReadAll 
06.
    End With 
07.
     
08.
    If InStr(sStdOut, "[") > 0 Then 
09.
        sIP = Split(Split(sStdOut, "[", 2)(1), "]")(0) 
10.
    Else 
11.
        sIP = "Nothing" 
12.
    End If 
13.
     
14.
    MsgBox sIP
Gruß Dieter
Bitte warten ..
Mitglied: ZeXoRs
09.07.2012, aktualisiert um 14:04 Uhr
Hi, danke das klappt ja schon mal wunderbar

Ich schreib gerade an einem Script das den Computernamen und die IP-Adresse auslesen soll und das in einem Dokument "Suchen und Ersetzen" soll. Das mit dem Computernamen haut schon hin, wie binde ich jetzt deine Lösung hier sorgfältig ein?

Also irgendwo muss das noch rein ;)

01.
strFilename = "C:\DATEV\PROGRAMM\DATEVDMS\program.ini" 
02.
Set objFSO = CreateObject("Scripting.FileSystemObject") 
03.
Set objFile = objFSO.GetFile(strFilename) 
04.
intFileSize = objFile.Size 
05.
Set objFile = objFile.OpenAsTextStream() 
06.
strFileContent = objFile.Read(intFileSize) 
07.
objFile.Close 
08.
 
09.
  
10.
Set WShell = CreateObject ("WScript.Shell")   
11.
Set ProcEnv = WShell.Environment("Process")  
12.
computername = procEnv("computername") 
13.
Set objRegExp = New RegExp 
14.
objRegExp.Pattern = Chr(34) 
15.
objRegExp.Global = True 
16.
objRegExp.IgnoreCase = True 'False für case-sensitive 
17.
strFileContent = objRegExp.Replace(strFileContent, "") 
18.
objRegExp.Pattern = "p000000e0" 
19.
strFileContent = objRegExp.Replace(strFileContent, computername) 
20.
Set objFile = objFSO.OpenTextFile(strFilename, 2) 
21.
objFile.Write strFileContent 
22.
objFile.Close
Bitte warten ..
Mitglied: 76109
09.07.2012 um 14:38 Uhr
Hallo ZeXoRs!

Die Frage ist, wie das Format des Ersetzen-Textes aussehen soll, also "p000000e0" ersetzen durch was? "Computername...? IP...?"

Gruß Dieter
Bitte warten ..
Mitglied: ZeXoRs
09.07.2012 um 15:25 Uhr
Zitat von 76109:
Hallo ZeXoRs!

Die Frage ist, wie das Format des Ersetzen-Textes aussehen soll, also "p000000e0" ersetzen durch was?
"Computername...? IP...?"

Gruß Dieter

Nein das geht ja schon also in dieser "Programm.ini" werden alle Computernamen mit "p000000e0" schon ersetzt durch die aktuelle. Das geht!

Ich möchte jetzt die druch dein Script ausgelesene IP durch die in der selben Datei durch "192.168.1.39" ersetzen.

Gruß Zexi
Bitte warten ..
Mitglied: 76109
09.07.2012, aktualisiert um 16:27 Uhr
Hallo Zexi!

Das Ganze, dann so:
01.
Const strFilename = "C:\DATEV\PROGRAMM\DATEVDMS\program.ini" 
02.
 
03.
    Dim objFso, strText, strComputer, strStdOut, strIP 
04.
     
05.
    With CreateObject("WScript.Shell") 
06.
        strComputer = .Environment("Process").Item("Computername") 
07.
        strStdOut = .Exec("Ping -n 1 -4 " & strComputer).StdOut.ReadAll 
08.
    End With 
09.
     
10.
    strIP = "" 
11.
     
12.
    If InStr(strStdOut, "[") > 0 Then 
13.
        strIP = Split(Split(strStdOut, "[", 2)(1), "]")(0) 
14.
    End If 
15.
     
16.
    Set objFso = CreateObject("Scripting.FileSystemObject") 
17.
         
18.
    With objFso.OpenTextFile(strFilename) 
19.
        strText = Replace(.ReadAll, Chr(34), "") 
20.
       .Close 
21.
    End With 
22.
    
23.
    strText = Replace(strText, "p000000e0", strComputer, 1, -1, vbTextCompare) 
24.
    strText = Replace(strText, "xxx.xxx.xxx.xx", strIP) 
25.
     
26.
    With objFso.CreateTextFile(strFilename) 
27.
        .Write strText 
28.
        .Close 
29.
    End With
Gruß Dieter
Bitte warten ..
Mitglied: ZeXoRs
09.07.2012 um 17:25 Uhr
Hat geklappt sehr gut dankeschön

Muss man hier mal ein Lob aussprechen!!!

Schönen Abend!
Zexi
Bitte warten ..
Mitglied: rubberman
09.07.2012, aktualisiert um 19:34 Uhr
Hallo Zusammen.

Ist zwar gelöst, aber warum in einem VBScript die Kommandozeile bemühen?
Nur mal so ...
01.
Set colNetAdp = GetObject("winmgmts:!\\.\root\cimv2").ExecQuery( _ 
02.
  "Select * from Win32_NetworkAdapterConfiguration Where IPEnabled=True") 
03.
For Each oNetAdp In colNetAdp 
04.
  WScript.Echo oNetAdp.IPAddress(0) 
05.
Next
Grüße
rubberman
Bitte warten ..
Mitglied: 76109
09.07.2012 um 19:46 Uhr
Hallo rubberman!

Ist zwar gelöst, aber warum in einem VBScript die Kommandozeile bemühen?
Hätte es ja auch gerne ohne die Cmd gelöst, aber Dein Lösungsweg war mir nicht bekannt bzw. ist mir entfallen

Gruß Dieter
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Cpl Dateien per Batch oder VBS öffnen (1)

Frage von Angelo131095 zum Thema Batch & Shell ...

VB for Applications
gelöst Tool zur scriptbasierten PDF-Bearbeitung gesucht (VBS oder Batch) (6)

Frage von SarekHL zum Thema VB for Applications ...

Batch & Shell
gelöst Variable per Batch auslesen und in Registry schreiben (1)

Frage von Zendara zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch: CPU-Auslastung eines Prozesses auslesen und als Variable definieren (3)

Frage von tralveller zum Thema Batch & Shell ...

Neue Wissensbeiträge
Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(37)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Humor (lol)

Bester Vorschlag eines Supporttechnikers ever: APC

(15)

Erfahrungsbericht von DerWoWusste zum Thema Humor (lol) ...

Heiß diskutierte Inhalte
Webbrowser
Windows 7 unbeliebte Internetseite sperren (15)

Frage von Daoudi1973 zum Thema Webbrowser ...

ISDN & Analoganschlüsse
gelöst Splitter - RJ45 zu RJ11? (13)

Frage von Waishon zum Thema ISDN & Analoganschlüsse ...

LAN, WAN, Wireless
gelöst Suche Firmware Image für Cisco Aironet 1252 (10)

Frage von Herbrich19 zum Thema LAN, WAN, Wireless ...

Netzwerke
VLAN Verständnissproblem (9)

Frage von Dragan123 zum Thema Netzwerke ...