Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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, 3387 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
VB for Applications
gelöst Vbscript.regexp suche nach Variable (5)

Frage von deutsch73 zum Thema VB for Applications ...

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

Frage von clragon zum Thema Batch & Shell ...

Batch & Shell
Batch Script Editor - Programmvorstellung des Entwicklers (16)

Tipp von wowItsDoge zum Thema Batch & Shell ...

Batch & Shell
gelöst VBS Script in eine Textdatei ausgeben (VBS mit Batch zusammenführen) (5)

Frage von Luuke257 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (14)

Frage von liquidbase zum Thema Windows Update ...

DSL, VDSL
Problem mit variernder Internetgeschwindigkeit (12)

Frage von schaurian zum Thema DSL, VDSL ...