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 Mit VBScript Zeilen mit bestimmten Werten aus TXT-Datei auslesen und in neuer TXT-Datei speichern

Mitglied: ndb-str

ndb-str (Level 1) - Jetzt verbinden

13.02.2009, aktualisiert 18.10.2012, 12420 Aufrufe, 4 Kommentare

Hallo,
Folgendes Thema würde ich gerne mittels VB Script - nicht mit Batch erledigen
Aus einer TXT.Datei möchte ich Zeilen mit bestimmten Werten, so etwas wie mit find, auslesen und diese dann in einer neuen TXT.Datei abspeichern.
Die übrigen Zeilen, die diesen o.g. Wert nicht enthalten lese ich mit dem Befehl /v ,denk ich mal, ebenfalls aus und will das in einer
zweiten TXT.Datei abspeichern.
Da die beiden TXT.Dateien nicht überschrieben werden sollen, müsste beim Speichern an dem Namen der TXT.Datei das Datum und die Uhrzeit (Std/Min) mit angehängt werden.
Die Ursprungs-TXT.Dateien hat eine erste Zeile (Statuszeile) die bei den beiden neuen TXT.Dateien ebenfalls als erste Zeile enthalten sein soll.
Vielleicht kann man am Anfag des VBScripts eine Abfrage einbauen um die gewünschte TXT.Datei im Explorer auswählen zu können. Ich bedanke mich mal im Voraus für die Hilfe. Evtl. Erklärungen zu den einzelnen Befehlen/Funktionen wären für mich als Einsteiger sehr hilfreich.
ndb-str
Mitglied: bastla
13.02.2009 um 19:41 Uhr
Hallo ndb-str und willkommen im Forum!

Zeilen mit bestimmten Werten
Ist die Mehrzahl bei "Werten" Absicht? Wie sollen diese "Werte" festgelegt werden?

Die übrigen Zeilen
... wären also auch Leerzeilen?

Grüße
bastla
Bitte warten ..
Mitglied: ndb-str
13.02.2009 um 19:53 Uhr
Hallo bastla,
bei den Zeilen handelt es sich mit Semikolon getrennte Werte die später im AD verarbeitet werden. Bestimmte Zeilen mit gleichen Werten sollen ausgelesen werden.
z.B. der Wert 000456789, der Wert 000567890 und der Wert 000654321 kommen jeweils in verschiedenen Zeilen vor. Es sollen nun alle Zeilen, bei den ein Wert, welcher mit 0004 beginnt ausgelesen werden und alle Zeilen die diesen Wert nicht enthalten.

Gruß
ndb-str
Bitte warten ..
Mitglied: bastla
13.02.2009, aktualisiert 18.10.2012
Hallo ndb-str!

Etwas zum Testen:
01.
Suchbegriffe = Array(";0004", "; 0004") 'Alle Zeilen, welche zumindest einen dieser Begriffe enthalten, werden in die "Gefunden"-Datei geschrieben 
02.
 
03.
If WScript.Arguments.Count > 0 Then 'Falls ein Dateipfad beim Aufruf übergeben wurde, ... 
04.
    Ein = WScript.Arguments(0) '... diesen in der Variablen "Ein" speichern. 
05.
Else 'Wurde kein Pfad übergeben, eine Dateiauswahl anbieten (nur für XP) 
06.
    Set Dialog = CreateObject("UserAccounts.CommonDialog")  
07.
    Dialog.Filter = "Textdateien|*.txt|Alle Dateien|*.*" 
08.
    Dialog.ShowOpen  
09.
    Ein = Dialog.FileName  
10.
End If 
11.
 
12.
Set fso = CreateObject("Scripting.FileSystemObject") 'Dateisystemobjekt (für das Arbeiten mit Dateien) erzeugen 
13.
If Not fso.FileExists(Ein) Then 'Pfad überprüfen und ... 
14.
    MsgBox "Keine gültige Datei gewählt!", vbCritical, "Dateifehler!" '... bei ungültigem Pfad Meldung ausgeben sowie ... 
15.
    WScript.Quit '... Script beenden. 
16.
End If 
17.
 
18.
'Pfad der Originaldatei zerlegen 
19.
Dateipfad = fso.GetParentFolderName(Ein) 
20.
If Right(Dateipfad, 1) <> "\" Then Dateipfad = Dateipfad & "\" 'sicher stellen, dass Pfad mit "\" endet 
21.
Dateiname = fso.GetBaseName(Ein) 
22.
Dateityp =  fso.GetExtensionName(Ein) 
23.
 
24.
Zeit = Now 'Zeitpunkt festhalten 
25.
ZeitFormatiert = _ 
26.
Year(Zeit) & _ 
27.
Right("0" & Month(Zeit), 2) & _ 
28.
Right("0" & Day(Zeit), 2) & _ 
29.
"-" & _ 
30.
Right("0" & Hour(Zeit), 2) & _ 
31.
Right("0" & Minute(Zeit), 2) 
32.
 
33.
Gefunden = Dateipfad & Dateiname & "_G_" & ZeitFormatiert & "." & DateiTyp      'Dateiname der "Gefunden"-Datei 
34.
NichtGefunden = Dateipfad & Dateiname & "_N_" & ZeitFormatiert & "." & DateiTyp 'Dateiname der "Nicht gefunden"-Datei 
35.
 
36.
Set G = fso.CreateTextFile(Gefunden, True)      '"Gefunden"-Datei erzeugen 
37.
Set N = fso.CreateTextFile(NichtGefunden, True) '"Nicht gefunden"-Datei erzeugen 
38.
 
39.
T = Split(fso.OpenTextFile(Ein).ReadAll, vbCrLF) 'gesamten Inhalt der Originaldatei zeilenweise in ein Array einlesen 
40.
U = Ubound(T) 'höchsten Index des Arrays ermitteln 
41.
 
42.
G.WriteLine T(0) 'erste Zeile in "Gefunden"-Datei schreiben 
43.
N.WriteLine T(0) 'erste Zeile in "Nicht gefunden"-Datei schreiben 
44.
 
45.
For i = 1 To U 'ab Zeile 2 (= Index 1) alle Zeilen der Originaldatei durchgehen 
46.
    Geschrieben = False 'Schalter, um festzuhalten, ob die Zeile bereits geschrieben wurde 
47.
    For Each Begriff In Suchbegriffe 'alle angegebenen Suchbegriffe durchgehen 
48.
        If InStr(1, T(i), Begriff, vbTextCompare) > 0 Then 'Wenn ein Suchbegriff in der Zeile gefunden wurde, ... 
49.
            G.WriteLine T(i) '... diese in die "Gefunden"-Datei schreiben und ... 
50.
            Geschrieben = True '... die Tatsache, dass die Zeile geschrieben wurde, festhalten sowie ... 
51.
            Exit For '... die Überprüfung auf weitere Suchbegriffe unter- und dazu die Schleife verlassen. 
52.
        End If 
53.
    Next 
54.
    If Not Geschrieben Then N.WriteLine T(i) ' Falls die Zeile noch nicht geschrieben wurde, dann in "Nicht gefunden"-Datei schreiben 
55.
Next 
56.
 
57.
G.Close '"Gefunden"-Datei schließen 
58.
N.Close '"Nicht gefunden"-Datei schließen 
59.
 
60.
MsgBox "Fertig."
Noch zwei Anmerkungen:
Es können mehrere Suchbegriffe verwendet werden (siehe Zeile 1), wobei auf das Vorhandensein (ohne Berücksichtigung von Groß-/Kleinschreibung, was allerdings aufgrund Deines Beispieles nicht relevant ist) des jeweiligen Suchbegriffes irgendwo innerhalb einer Zeile geprüft wird (daher mein Vorschlag mit Einbeziehung des Trennzeiches).

Der Dateiauswahldialog (wird angeboten, wenn beim Aufruf des Scripts keine Datei - auch nicht per Drag & Drop - übergeben wurde) funktioniert nur mit XP - Alternativen in diesem Thread: VBS - Datei auswählen ...

[Edit]
Bei Ersatz der Zeilen 6 bis 9 durch
    Set Dialog = CreateObject("SAFRCFileDlg.FileOpen") 
    If Dialog.OpenFileOpenDlg Then Ein = Dialog.FileName
sollte auch unter W2003 (aber nicht unter Vista) eine Dateiauswahl möglich sein.
[/Edit]

Grüße
bastla
Bitte warten ..
Mitglied: ndb-str
14.02.2009 um 16:36 Uhr
Hallo bastla,
das ist ein genau das was ich mir vorstelle. Herzlichen Dank dafür.
Werde nun versuchen noch ein paar Kleinigkeiten dazuzubasteln wenn es mir gelingt.
Eventuell werde ich dich dann nochmal um Rat bitten wenn ich irgendwo hängenbleibe.
Nochmal vielen Dank
ndb-str
Bitte warten ..
Ähnliche Inhalte
Entwicklung

Bestimmte zeile aus txt datei auslesen und sich aus zeile 100 einen wert anzeigen lassen ?

gelöst Frage von bob777Entwicklung12 Kommentare

Hallo Suche einen Weg sich aus einer .config (txt) datei einen Wert Spielzeit auszulesen und anzuzeigen? Kann das irgendwer ...

Batch & Shell

Einzelne Zeilen in txt Datei speichern und auslesen

gelöst Frage von noah1400Batch & Shell7 Kommentare

Liebe Forum-Mitglieder Ich habe da so eine Frage: Ich bin gerade dabei ein PW abfrage mit Batch zu machen. ...

PHP

TXT Datei auslesen und bestimmte Zeilen in Variable setzen

gelöst Frage von 126594PHP11 Kommentare

Hallo zusammen, vorweg muss ich sagen, ich bin (bis jetzt) absoluter Neuling was PHP angeht. Ich will aus einer ...

Windows Userverwaltung

Eine Zeile aus txt bzw.xml Datei auf allen Clients prüfen auf bestimmten Wert - Domänennetzwerk

Frage von neueradmuserWindows Userverwaltung1 Kommentar

Hi, ich habe das Problem das ich bei unserem Firmennetzwerk eine bestimmte *.xml Datei auf jedem Client auf eine ...

Neue Wissensbeiträge
Windows 10

USB Maus und Tastatur versagen Dienst unter Windows 10

Erfahrungsbericht von hardykopff vor 2 TagenWindows 105 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 2 TagenAdministrator.de Feedback18 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 3 TagenHumor (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 3 TagenGoogle 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
Router & Routing
Router auf Orginal Firmware zurück flashen mit Tftpd
Frage von ILeonardRouter & Routing21 Kommentare

Hallo, Ich habe zwei Router, einmal TP-Link 841n v11 und TP-Link 940N v5. Ich wollte fragen, ob jemand mir ...

Router & Routing
WRT keine Verbindung zum Web Interface
gelöst Frage von ILeonardRouter & Routing18 Kommentare

Hallo, Ich habe einen TP-Link WR841n mit wrt geflasht, das Problem ist ich kann mich mit 192.168.1.1 nicht verbinden. ...

Windows Server
Standortvernetzung zu einem Strato VServer (Windows)
Frage von matzefratze81Windows Server10 Kommentare

Moin, ich komme aus einem Enterprise-Umfeld und habe den Fehler gemacht, dass ich mich auf ein kleines Unternehmen eingelassen ...

TK-Netze & Geräte
Telefonie zweier Fritzboxen mit je eigenem DSL Anschluss verbinden
Frage von hannsgmaulwurfTK-Netze & Geräte10 Kommentare

Hallo zusammen, ich habe hier einen Haushalt mit zwei Anschlüssen. Einmal ISDN, einmal DSL. An jedem Anschluss hängt eine ...