Möchte Script von Batch auf VBScript umsetzen. Suche Ersatz für find c und findstr
Hallo
Möchte mich mehr mit VB Script beschäftigen und versuche deshalb ein Batch Script in VB Script zu portretieren.
Habe schon Google mit ein paar tutorials und Bücher gewälzt und jede mänge Scripte versucht zu verstehen.
Bin aber grade an einen Punkt in dem ich die Anzahl Treffe in einer Logdatei herausfinden will.
In Batch einfach mit find /c "densuchwert" "diedatei".
- In VBScript bekommen ich mit instr nur den ersten treffer.
- Mit replace werde mir strings ersetzt was ich ja auch nicht will.
(Eventuell könnte ich die replacemanets zählen aber auch da schwebt mir noch keine COde vor
und würde es zu mächtig finden wenn es in batch mit einen Befehl geht.
- Mit regEx ( Regular Expression ) kan man auch nach einige suchen aber ein Count habe ich auch da noch nicht gefunden.
- Und bei findstr habe ich auch nur dir Krücke WshShell.Run "%comspec% /c findstr /L /C:""Computer"" gefunden
Also keine wirkliches Gegenstück
Kann mir da Jemand weiterhelfen.
Möchte mich mehr mit VB Script beschäftigen und versuche deshalb ein Batch Script in VB Script zu portretieren.
Habe schon Google mit ein paar tutorials und Bücher gewälzt und jede mänge Scripte versucht zu verstehen.
Bin aber grade an einen Punkt in dem ich die Anzahl Treffe in einer Logdatei herausfinden will.
In Batch einfach mit find /c "densuchwert" "diedatei".
- In VBScript bekommen ich mit instr nur den ersten treffer.
- Mit replace werde mir strings ersetzt was ich ja auch nicht will.
(Eventuell könnte ich die replacemanets zählen aber auch da schwebt mir noch keine COde vor
und würde es zu mächtig finden wenn es in batch mit einen Befehl geht.
- Mit regEx ( Regular Expression ) kan man auch nach einige suchen aber ein Count habe ich auch da noch nicht gefunden.
- Und bei findstr habe ich auch nur dir Krücke WshShell.Run "%comspec% /c findstr /L /C:""Computer"" gefunden
Also keine wirkliches Gegenstück
Kann mir da Jemand weiterhelfen.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 188204
Url: https://administrator.de/contentid/188204
Ausgedruckt am: 23.11.2024 um 01:11 Uhr
2 Kommentare
Neuester Kommentar
Hallo mycroftone!
Etwa so:
- wobei hier allerdings nicht die Anzahl von Zeilen, welche den Suchwert enthalten, zurückgegeben wird, sondern die Anzahl, wie oft der Suchwert in der Datei enthalten ist.
Falls Du das doch für Zeilen benötigst:
Um den Schalter "
bei Variante 2
Grüße
bastla
Etwa so:
Datei = "D:\Die Datei.txt"
Suchwert = "derSuchwert"
Set rE = New RegExp
With rE
.Pattern = Suchwert
.Global = True
End With
Set Matches = rE.Execute(CreateObject("Scripting.FileSystemObject").OpenTextFile(Datei).ReadAll)
WScript.Echo Matches.Count
Falls Du das doch für Zeilen benötigst:
Datei = "D:\Die Datei.txt"
Suchwert = "derSuchwert"
T = Split(CreateObject("Scripting.FileSystemObject").OpenTextFile(Datei).ReadAll)
For Each Zeile In T
If InStr(Zeile, Suchwert) > 0 Then Anzahl = Anzahl + 1
Next
WScript.Echo Anzahl
/i
" nachzubilden bei Variante 1 vor Zeile 8 einfügen.IgnoreCase = True
If InStr(1, Zeile, Suchwert, vbTextCompare) > 0 Then Anzahl = Anzahl + 1
bastla