Dieser Beitrag ist schon älter. Bitte vergewissern Sie sich, dass die Rahmenbedingungen oder der enthaltene Lösungsvorschlag noch dem aktuellen Stand der Technik entspricht.

Datei durchsuchen

Mitglied: Farmer

Detei durchsuchen

Hallo
ist es mit einer Batchdatei möglich von einer Datei einen Wert raus zu suchen??.
Beispiel:
in einer Datei test.txt, soll die Batchdatei in der 165. Zeile nach dem 65. Zeichen die nächsten 10 zeichen in eine datei Hallo.txt schreiben.
das heist, ich möchte einen bestimmten Wert, der sich dauernd ändert auslesen und in einer anderen datei speichern.

vielen Dank im voraus

mfg
Farmer

Content-Key: 5170

Url: https://administrator.de/contentid/5170

Ausgedruckt am: 22.09.2021 um 13:09 Uhr

Mitglied: gemini
gemini 28.12.2004 um 20:21:39 Uhr
Goto Top
Option Explicit
On Error Resume Next
Dim objFSO, objFile, s, i, strLine, strValue
i = 165 'Zeile mit dem gesuchten Wert
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("Pfad\zu\test.txt", 1)
For i = 0 To i
objFile.SkipLine
Next i
strLine = objFile.ReadLine
objFile.Close
strValue = Mid(strLine, 65, 10)
Set objFile = objFSO.OpenTextFile("Pfad\zu\Hallo.txt", 8)
objFile.Write strLine
objFile.Close
End Sub
<hr>
So könnte ich mir das vorstellen.
Versuch mal ob's funktioniert.
Mitglied: Farmer
Farmer 28.12.2004 um 20:34:12 Uhr
Goto Top
welche Sprache ist das???
geht das auch für die Befehlszeile, also eine .cmd
Mitglied: gemini
gemini 28.12.2004 um 21:00:21 Uhr
Goto Top
Das ist VBScript, die Datei muss die Endung .vbs haben
Du kannst es es als zeitgesteuert als Task starten, von einem anderen Script aus, natürlich auch über die Kommandozeile.
Mitglied: Farmer
Farmer 28.12.2004 um 23:05:07 Uhr
Goto Top
Hallo
habe es jetzt in eine datei namens test.vbs Kopiert.
sieht jetzt so aus:

Option Explicit
On Error Resume Next
Dim objFSO, objFile, s, i, strLine, strValue
i = 165 'Zeile mit dem gesuchten Wert
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("c:\kens.txt", 1)
For i = 0 To i
objFile.SkipLine
Next i
strLine = objFile.ReadLine
objFile.Close
strValue = Mid(strLine, 65, 10)
Set objFile = objFSO.OpenTextFile("c:\test.txt", 8)
objFile.Write strLine
objFile.Close
End Sub

Kens.txt ist die Datei in der gesucht werden soll
Test.txt ist die Datei in der geschrieben werden soll.

beim Doppelklick kommt leider folgender Fehler:
Script:C:\test.vbs
Zeile:9
Zeichen :6
Fehler: Anweisungsende erwartet
Code:800A0401
Quelle: Kompilierungsfehler in Microsoft VBScript
Mitglied: gemini
gemini 29.12.2004 um 14:03:14 Uhr
Goto Top
Versuch mal das hier:

Option Explicit
On Error Resume Next
Dim objFSO, objFile, s, i, strLine, strZeile, strValue
strZeile = 165 'Zeile mit dem gesuchten Wert
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("c:\kens.txt", 1)
For i = 0 To strZeile +1
objFile.SkipLine
i = i + 1
Next
strLine = objFile.ReadLine
objFile.Close
strValue = Mid(strLine, 65, 10)
Set objFile = objFSO.OpenTextFile("c:\test.txt", 8)
objFile.Write strLine & " "
objFile.Close
~~~~~~~~~~
In der test.txt werden die Werte jeweils mit einem Leerzeichen dahinter aneinandergefügt.
Wenn die Werte ersetzt werden sollen musst du statt der 8 eine 2 einsetzen.
Mitglied: Farmer
Farmer 29.12.2004 um 17:26:55 Uhr
Goto Top
Hallo
Dake erstmal für die Anwort.

also die Zeile findet er zwar (muss aber anstatt Zeile 165, Zeile 326 eingeben)
aber dann schreibt er mir die komplette Zeile in die Datei und nicht nur die 10 Zeichen
Mitglied: gemini
gemini 29.12.2004 um 18:29:50 Uhr
Goto Top
Option Explicit
On Error Resume Next
Dim objFSO, objFile, i, strLine, strZeile, strValue
strZeile = 165 'Zeile mit dem gesuchten Wert
i = 1
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("c:\kens.txt", 1)
Do
objFile.SkipLine
i = i + 1
Loop Until i = strZeile
strLine = objFile.ReadLine
objFile.Close
strValue = Mid(strLine, 65, 10)
Set objFile = objFSO.OpenTextFile("c:\test.txt", 8)
objFile.Write strValue & " "
objFile.Close
Set objFSO = Nothing
Set objFile = Nothing
i = 0
strLine = ""
strZeile = ""
strValue = ""

Das hat bei mir einwandfrei funktioniert.
Das vorher die ganze Zeile geschrieben wurde lag an der falschen Variable.
Mitglied: Farmer
Farmer 29.12.2004 um 18:50:12 Uhr
Goto Top
Es funktioniert!!!!!! *g*


vielen Dank für die sehr grosse Hilfe (und Gedult)
Mitglied: gemini
gemini 29.12.2004 um 18:57:42 Uhr
Goto Top
Freut mich :-) face-smile

Sorry wegen der Fehler.
Wenn ich sowas nicht direkt selbst brauche, bin ich etwas faul was das testen anbetrifft ;-) face-wink
Ich gelobe Besserung: more test before post

Einen guten Rutsch!!!
Mitglied: Farmer
Farmer 29.12.2004 um 19:05:07 Uhr
Goto Top
ich hätte da noch einen Wunsch

Ist es vielleicht möglich eine Zeile Darunter das aktuelle Datum und Uhrzeit zu setzen.
Mitglied: gemini
gemini 30.12.2004 um 20:32:49 Uhr
Goto Top
Selbstverständlich ist das möglich, ist aber wahrscheinlich besser lesbar wenn Datum/Uhrzeit daneben steht.

Jetzt ist auch etwas Eigeninitiative gefordert ;-) face-wink
Wenn du Zeile 16 des Scripts mit der folgenden ersetzt, erhältst du eine Ausgabe in der Form
xxxxxxxxxx - dd.mm.yyyy hh.mm.ss

objFile.WriteLine strValue & " - " & Now
Mitglied: Farmer
Farmer 30.12.2004 um 21:18:33 Uhr
Goto Top
Danke nochmals
Heiß diskutierte Beiträge
tip
Outlook 2019 Konto hinzufügen - Kein Benutzername mehr bei IMAP Einstellungen - LösungFrankVor 23 StundenTippOutlook & Mail31 Kommentare

Eine weitere Kuriosität unter Office 2019 ist bei mir gerade hart aufgeschlagen. Ich wollte ein normales IMAP/SMTP Konto zu Outlook 2019 hinzufügen. Das war aber ...

question
Clonen einer SSD Platte auf eine grösserejensgebkenVor 1 TagFrageFestplatten, SSD, Raid9 Kommentare

Hallo Gemeinschaft habe in meinem Rechner eine alte SSD 128 und eine neu installierte mit Windows 10 drauf 512 GB nun möchte ich gerne die ...

question
Ablösung alte M.2 SSDUrx1974Vor 1 TagFrageFestplatten, SSD, Raid7 Kommentare

Hallo, ich habe in einem (anderen) Laptop eine ITE-ON CV3-8D128-11 128GB M2 / M.2 SSD 2280 drin. Ich wollte diese jetzt durch eine 1TB SSD ...

question
Dienst-PCs per Image sichern?Yan2021Vor 21 StundenFrageBackup11 Kommentare

Hallo Ihr Lieben ;-) So, Urlaub vorbei und schon kommt mal wieder eine Frage von mir. Wir haben hier so rund gerechnet 10 PCs. Da ...

general
VPN-Einwahl für UnternehmensnetzwerkjoergVor 1 TagAllgemeinLAN, WAN, Wireless12 Kommentare

Hallo zusammen, aktuell beschäftige ich mich mit der Frage, ob unsere aktuelle User-VPN-Lösung noch die Richtige ist oder ob es bessere Alternativen gibt. Wir setzen ...

question
Problem mit gespiegelten BackupsystemfisiyouVor 1 TagFrageCluster8 Kommentare

Hi liebe Community, Bin derzeit als Umschüler (Fisi) im Betriebspraktikum unterwegs. Mir wurde jetzt ein Problem mit unseren Backupstorage mitgeteilt, wo ich mir eine Lösung ...

question
Webseite signierenUserUWVor 22 StundenFrageInternet9 Kommentare

Gelegentlich möchte man auf einer Webseite kritische Daten veröffentlichen, zum Beispiel Checksummen von Dateien/Programmen oder den Fingerprint eines Schlüssels. Frage: Wie kann man diese Information ...

question
"Aktualisieren und Herunterfahren" nach Windows Update erzwingenFrM222Vor 21 StundenFrageWindows Update7 Kommentare

Hallo Zusammen, wir verteilen unsere Windows Updates über WSUS (2016) und haben hier inzwischen eigentlich einen ganz guten Stand. Die Updates werden sehr zügig auf ...