Datei durchsuchen
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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 5170
Url: https://administrator.de/contentid/5170
Ausgedruckt am: 25.11.2024 um 22:11 Uhr
12 Kommentare
Neuester Kommentar
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.
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.
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.
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.
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.
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.
Selbstverständlich ist das möglich, ist aber wahrscheinlich besser lesbar wenn Datum/Uhrzeit daneben steht.
Jetzt ist auch etwas Eigeninitiative gefordert
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
Jetzt ist auch etwas Eigeninitiative gefordert
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