Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

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

Möchte Script von Batch auf VBScript umsetzen. Suche Ersatz für find c und findstr

Frage Entwicklung Batch & Shell

Mitglied: mycroftone

mycroftone (Level 1) - Jetzt verbinden

18.07.2012, aktualisiert 00:15 Uhr, 3419 Aufrufe, 2 Kommentare

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.
Mitglied: bastla
18.07.2012, aktualisiert um 00:36 Uhr
Hallo mycroftone!

Etwa so:
01.
Datei = "D:\Die Datei.txt" 
02.
Suchwert = "derSuchwert" 
03.
 
04.
Set rE = New RegExp 
05.
With rE 
06.
    .Pattern = Suchwert 
07.
    .Global = True 
08.
End With 
09.
 
10.
Set Matches = rE.Execute(CreateObject("Scripting.FileSystemObject").OpenTextFile(Datei).ReadAll) 
11.
WScript.Echo Matches.Count
- 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:
01.
Datei = "D:\Die Datei.txt" 
02.
Suchwert = "derSuchwert" 
03.
 
04.
T = Split(CreateObject("Scripting.FileSystemObject").OpenTextFile(Datei).ReadAll) 
05.
For Each Zeile In T 
06.
    If InStr(Zeile, Suchwert) > 0 Then Anzahl = Anzahl + 1 
07.
Next 
08.
WScript.Echo Anzahl
Um den Schalter "/i" nachzubilden bei Variante 1 vor Zeile 8 einfügen
.IgnoreCase = True
bei Variante 2
If InStr(1, Zeile, Suchwert, vbTextCompare) > 0 Then Anzahl = Anzahl + 1
Grüße
bastla
Bitte warten ..
Mitglied: mycroftone
18.07.2012 um 18:00 Uhr
Hallo Bastel


Danke für die Schnelle Hilfe. Werde es heute Abend gleich ausprobieren.

Auf die Idee Instr in einer Schleife hochzuzählen bin ich noch nicht gekommen.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Ich Möchte in einem Batch Programm User erstellen (14)

Frage von Gangster137910 zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch Syntaxfehler, aber finde ihn nicht :( (5)

Frage von PinkFLuffyUnicorn zum Thema Batch & Shell ...

Batch & Shell
gelöst Findstr - code für schwieriger Abfrage gesucht (9)

Frage von reissaus73 zum Thema Batch & Shell ...

Batch & Shell
gelöst Nonsense Error - find ihn nicht. (Batch) (7)

Frage von clragon zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Installation

Unorthodoxer Weg, um an einen Offline-Installer für Adobe Flash zu kommen

(8)

Tipp von beidermachtvongreyscull zum Thema Windows Installation ...

Datenschutz

Gefährdeter Datenschutz: Firefox löscht lokale Datenbanken nicht

Information von BassFishFox zum Thema Datenschutz ...

Firewall

PfSense OpenVPN beschleunigen

Tipp von Dobby zum Thema Firewall ...

Utilities

CCleaner 5.33 mit Malware infiziert

(27)

Information von SeaStorm zum Thema Utilities ...

Heiß diskutierte Inhalte
Utilities
CCleaner 5.33 mit Malware infiziert (27)

Information von SeaStorm zum Thema Utilities ...

Festplatten, SSD, Raid
gelöst Problem mit DELL 815R Server und Windows Bluescreen (24)

Frage von Leo-le zum Thema Festplatten, SSD, Raid ...

Windows Systemdateien
Windows bootet nicht mehr Fehlermeldung 0xc0000098 (19)

Frage von franzgoerlich zum Thema Windows Systemdateien ...

Windows Netzwerk
Dateien mit Intelligenz per GPO ins Programmverzeichnis (14)

Frage von erwin.t zum Thema Windows Netzwerk ...