Top-Themen

Aktuelle Themen (A bis Z)

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

Mitglied: ZeXoRs

ZeXoRs (Level 1) - Jetzt verbinden

09.07.2012 um 08:35 Uhr, 7106 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
VB for Applications
VBS - Vor- und Nachnamen auslesen
Frage von Ah3n0bar6usVB for Applications2 Kommentare

Ich könnte noch einmal (teuren) Rat gebracuhen. Ich versuche mir dem u.a. Script den kompletten Namen eines Nutzers vom ...

Batch & Shell
Eventlog Druckjobs mit VBS auslesen
Frage von joni2000deBatch & Shell4 Kommentare

Hallo zusammen, ich lese mit folgendem Code das Eventlog aus um die Druckjobs zu ermitteln. Das funktioniert auf dem ...

Entwicklung

Zählerstände über SNMP und VBS auslesen

Frage von motofuzyEntwicklung4 Kommentare

Hallo ihr lieben, ich suche ein Script das in VBS oder Powershell geschrieben ist und mir die Zählerstände der ...

VB for Applications

CSV Datei mit VBS auslesen

Frage von scorpionesc83VB for Applications4 Kommentare

Hallo zusammen, ich bin in Sachen VBS ein totaler Anfänger und hoffe, dass ihr mir bei einem Problem helfen ...

Neue Wissensbeiträge
Erkennung und -Abwehr

Ups: Einfaches Nullzeichen hebelte den Anti-Malware-Schutzt in Windows 10 aus

Information von kgborn vor 11 StundenErkennung und -Abwehr

Windows 10 ist das sicherste Windows aller Zeiten, wie Microsoft betont. Insidern ist aber klar, das es da Lücken, ...

Windows 10

Windows 10 on ARM: von Microsoft entfernte Info - Klartext, was nicht geht

Information von kgborn vor 13 StundenWindows 10

Windows 10 on ARM ist ja eine neue Variante, die Microsoft im Verbund mit Geräteherstellern am Markt etablieren will. ...

Microsoft
TV-Tipp: Das Microsoft-Dilemma
Information von kgborn vor 13 StundenMicrosoft7 Kommentare

Aktuell gibt es in Behörden und in Firmen eine fatale Abhängigkeit von Microsoft und dessen Produkten. Planlos agieren die ...

Windows 10
Zero-Day-Lücke in Microsoft Edge
Information von kgborn vor 2 TagenWindows 10

In Microsofts Edge-Browser klafft wohl eine nicht geschlossene (0-Day) Sicherheitslücke im Just In Time Compiler (JIT Compiler) für Javascript. ...

Heiß diskutierte Inhalte
Windows 10
Windows 10 (1709) Tastur und Maus wieder einschalten?
Frage von LochkartenstanzerWindows 1026 Kommentare

Moin, Ich habe von einem Kunden einen Win10-Rechner bekommen, bei dem weder Tastatur noch Maus geht. Die Hardware funktioniert ...

Firewall
RB2011 Firewall Rule eine bestimmte Mac oder IP Adresse nicht zu blockieren
Frage von lightmanFirewall15 Kommentare

Hallo liebes Forum mit ihren Spezialisten. Ich habe meine Firewall so konfiguriert das kein Endgerät ohne meine Speziellen Erlaubnis ...

Humor (lol)
Was könnte man mit einem Server machen? Idee gesucht
Frage von 2SeitenHumor (lol)15 Kommentare

Hey Zusammen Ich habe einen alten HP G2 Rackserver zu Hause rumliegen. 28GB Ram, 1xAMD Prozi mit etwa 2GHz. ...

Webbrowser
Welcher Browser ist der Beste?
Frage von justtinWebbrowser13 Kommentare

Hallo Leute Ich habe eine interessante Frage. Mich wurde mal interessieren welcher Browser ist eure meinung nach der beste? ...