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

VBS - Hinzufügen einer Zeile

Mitglied: gdnmarc

gdnmarc (Level 1) - Jetzt verbinden

12.11.2008, aktualisiert 14.11.2008, 4752 Aufrufe, 4 Kommentare

Hallo,

ich habe die Anforderung eine neue Zeile (bsp. 155.1.1.2 test.com) in die Hosts-Datei (an das Ende) hinzuzufügen.

Dabei soll vorher überpürft werden, ob die Zeile mit diesem Wert schon vorhanden ist, wenn ja, soll nichts gemacht werdn, wenn nein den wert an das Ende der Datei hinzufügen.

1000DANK!!!!
Mitglied: bastla
12.11.2008 um 11:40 Uhr
Hallo gdnmarc!

Etwa so:
01.
Datei = "D:\Datei.txt" 
02.
Zeile = "155.1.1.2 test.com" 
03.
Set fso = CreateObject("Scripting.FileSystemObject") 
04.
Inhalt = fso.OpenTextFile(Datei).ReadAll 
05.
If InStr(1, Inhalt, Zeile, vbTextCompare) = 0 Then 
06.
	fso.OpenTextFile(Datei, 8).WriteLine Zeile 
07.
End If
Einschränkung: Es wird nicht exakt nach einer Zeile, sondern nur nach dem Vorhandensein der Zeile als Teilstring des gesamten in der Datei enthaltenen Textes gesucht - allerdings sollte die Kombination aus IP-Adresse und Hostnamen wohl kaum in einer anderen Zeile enthalten sein.

Wenn Du tatsächlich (genau) zeilenweise vergleichen willst, dann in ein Array einlesen und Zeile für Zeile durchgehen.

Grüße
bastla
Bitte warten ..
Mitglied: dog
12.11.2008 um 11:43 Uhr
Ein paar Stichworte:

Scripting.FileSystemObject -> OpenTextFile,Readline
Left()
Split()
Scripting.Dictionary
Trim()
Bitte warten ..
Mitglied: gdnmarc
14.11.2008 um 14:41 Uhr
Vielen Dank schonmal.

Ich glaube es ist besser jede Zeile einzeln zu durchsuchen, da evt. ein Hosteintrag auch mit einem # auskommentiert sein könnte. D.h. ich möchte überprüfen, ob die IP-Adresse in einer Zeile vorhanden ist, aber das erste Zeichen kein # ist.

Viele Grüße an Euch!!
Bitte warten ..
Mitglied: bastla
14.11.2008 um 17:55 Uhr
Hallo gdnmarc!

Dann eben auf die harte Tour ...
01.
Datei = "D:\Datei.txt" 
02.
ZeileNeu = "155.1.1.2 test.com" 
03.
 
04.
Set fso = CreateObject("Scripting.FileSystemObject") 
05.
Zeilen = Split(fso.OpenTextFile(Datei).ReadAll, vbCrLf) 'gesamte Datei in Array Zeilen einlesen 
06.
 
07.
Append = True 'Schalter für "Zeile hinzufügen" setzen 
08.
For i = 0 To UBound(Zeilen) 'alle eingelesenen Zeilen durchgehen 
09.
    If StrComp(Trim(Zeilen(i)), ZeileNeu, vbTextCompare) = 0 Then 'Gibt es die neue Zeile schon (ev Leerzeichen an Anfang und/oder Ende der Zeile werden ignoriert)?  
10.
        Append = False 'Wenn ja, dann keine Zeile hinzufügen ... 
11.
        Exit For '... und die weiteren Zeilen nicht mehr überprüfen. 
12.
    End If 
13.
 
14.
    If InStr(1, Zeilen(i), ZeileNeu, vbTextCompare) > 0 Then 'Ist die neue Zeile in der aktuell überprüften Zeile enthalten ... 
15.
        If Left(Zeilen(i), 1) = "#" Then '... und beginnt diese Zeile mit "#", ... 
16.
            Zeilen(i) = Mid(Zeilen(i), 2) '... dann "#" entfernen und ... 
17.
            Write = True '... vormerken, dass die Datei neu geschrieben werden muss. 
18.
            Append = False 'Die neue Zeile muss nicht hinzugefügt werden. 
19.
            Exit For 'Auch hier kann das Prüfen der restlichen Zeilen entfallen. 
20.
        End If 
21.
    End If 
22.
Next 
23.
If Append Then 'Wenn die neue Zeile hinzugefügt werden muss, ... 
24.
    fso.OpenTextFile(Datei, 8).WriteLine ZeileNeu '... machen wir das, ... 
25.
ElseIf Write Then '... ansonsten noch prüfen, ob neu geschrieben werden muss (da "#" entfernt) ... 
26.
    fso.CreateTextFile(Datei, True).Write Join(Zeilen, vbCrLf) '... und dieses ausführen. 
27.
End If
Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
VB for Applications

VBS-Entfernen von Zeilen in einer Textdatei

Frage von Calim3roVB for Applications5 Kommentare

Hallo zusammen Ich möchte aus einer Textdatei Zeilen entfernen. Ich habe drei Dateien, in Datei "A" stehen Wörter, in ...

VB for Applications

Mit VBS erste Zeile von CSV ändern

gelöst Frage von apfeltoastVB for Applications5 Kommentare

Hallo zusammen, ich wurde von einem Arbeitskollegen beauftragt eine CSV-Datei automatisch zu editieren. Die Ursprungsdatei hat 44 Spalten und ...

Batch & Shell

Vbs Anzahl gleicher Zeilen ermitteln

Frage von goodbytesBatch & Shell1 Kommentar

Hallo, in einem Array hab ich zehn mittels Semikolon getrennte Strings als Datensätze, die Datensätze sind durch vbCrLf getrennt. ...

Batch & Shell

Zeilen duplizieren und Nummerierung hinzufügen (Notepad++)

gelöst Frage von 918103Batch & Shell24 Kommentare

Hallo, ich habe eine Liste und müsste Zeilen duplizieren und etwas dran hängen. So siehts aus: < Die Zeile ...

Neue Wissensbeiträge
Windows 10

USB Maus und Tastatur versagen Dienst unter Windows 10

Erfahrungsbericht von hardykopff vor 13 StundenWindows 103 Kommentare

Da steht man ziemlich dumm da, wenn der PC sich wegen fehlender USB Tastatur und Maus nicht bedienen lässt. ...

Administrator.de Feedback
Update der Seite: Alles zentriert
Information von Frank vor 16 StundenAdministrator.de Feedback11 Kommentare

Hallo User, die größte Änderung von Release 5.8 ist das Zentrieren der Webseite (auf großen Bildschirmen) und ein "Welcome"-Teaser ...

Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 1 TagHumor (lol)4 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 1 TagGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Heiß diskutierte Inhalte
Server-Hardware
Welche Rolle spielt Design bei Enterprise IT Hardware?
Frage von ApolloXServer-Hardware17 Kommentare

Ich arbeite für einen internationalen Elektronikhersteller in der Forschung und meine Aufgabe ist es, Feedback von Nutzern in Hinsicht ...

Windows Netzwerk
WSUS4 und Windows 10 Updates automatisch installieren
Frage von sammy65Windows Netzwerk15 Kommentare

Hallo miteinander, ich habe mit einen neuen WSUS Server aufgesetzt Server 2016 darauf einen aktuellen WSUS. Grund, wir stellen ...

Speicherkarten
Vergessliche USB-Sticks?
Frage von hanheikSpeicherkarten14 Kommentare

Ich habe in den letzten Tagen 500 USB-Sticks mit Bilddateien bespielt. Obwohl ich die Dateien mit größter Sorgfalt kopiert ...

Windows Netzwerk
Backup über WAN
Frage von petereWindows Netzwerk11 Kommentare

Hallo, ich muss aus einem entfernten WAN (synchrone 1Gbit) Daten sichern. Dabei handelt es sich sowohl um wenige große ...