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, 3402 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
Neue Wissensbeiträge
Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(4)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(9)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Heiß diskutierte Inhalte
Exchange Server
Exchange 2016 Standard Server 2012 R2 Hetzner Mail (41)

Frage von Datsspeed zum Thema Exchange Server ...

Windows 7
gelöst Lokales Adminprofil defekt (25)

Frage von Yannosch zum Thema Windows 7 ...

LAN, WAN, Wireless
gelöst Statische Routen mit ISC-DHCP Server für Android Devices (18)

Frage von terminator zum Thema LAN, WAN, Wireless ...

Exchange Server
gelöst Migration Exchange 2007 zu 2013 - Public Folder teilweise weg (16)

Frage von Andy1987 zum Thema Exchange Server ...