Hm... Ich programmiere fast nie VBS sondern immer VBA. Kennt VBS den Befehl Like nicht?
Ich habe aber ein ähnliches Script. Dort arbeite ich aber mit RegExp und das funktioniert einwandfrei
Ich habe aber ein ähnliches Script. Dort arbeite ich aber mit RegExp und das funktioniert einwandfrei
Visual Basic:
'-------------------------------------------------------------------------------
'File : lib_cookies
' Copyright mpl by ERB software
' All rights reserved
' http://wiki.yaslaw.info/dokuwiki/doku.php/vba/
'Environment : VBA 2007 +
'Version : 1.0.0
'Name :
'Author : Stefan Erb (ERS)
'History : 03.05.2017 - ERS - Creation
'-------------------------------------------------------------------------------
Option Explicit
'/**
' * Pfad zu den Cookies
' */
Const C_COOKIES_FOLDER = "C:\Users\XXXXXX\AppData\Roaming\Microsoft\Windows\Cookies\"
Const C_LOG_FILE = "C:\XXXX\VB_SCRIPTS\del_cookies.log"
Dim fso: Set fso = CreateObject("Scripting.FileSystemObject")
Dim logStream: Set logStream = fso.OpenTextFile(C_LOG_FILE, 8, True)
Dim cnt
cnt = deleteCookies(C_COOKIES_FOLDER, "/tagesanzeiger/i")
logStream.writeLine now & vbTab & cnt & vbTab & "/tagesanzeiger/i"
cnt = deleteCookies(C_COOKIES_FOLDER, "/landbote/i")
logStream.writeLine now & vbTab & cnt & vbTab & "/landbote/i"
logStream.close
'-------------------------------------------------------------------------------
' Public members
'-------------------------------------------------------------------------------
'/**
' * Löscht alle Cookies eines Patterns. Das Cookie-Verzeichnis wird Rekursiv durchsucht. Sprich, auch die Unterverzeichnisse sind betroffen
' * @param String URL zu den Cookies
' * @param String RegExp-Pattern inkl. Modifiers -> http://wiki.yaslaw.info/doku.php/vba/cast/cregexp#pattern_inkl_modifiers
' * @return Long Anzahl gelöschter Cookies
' */
Function deleteCookies(ByVal iPath, ByVal iPattern)
Dim f
Dim rxEntry: Set rxEntry = cRx(iPattern)
Dim rxFileFilter: Set rxFileFilter = cRx("/\.txt$/i")
'Durch die Subfolder iterieren
For Each f In fso.GetFolder(iPath).SubFolders
deleteCookies = deleteCookies + deleteCookies(f.path, iPattern)
Next
'Die einzelnen Files durchgehen
For Each f In fso.GetFolder(iPath).Files
'sicherstellen, dass es ein Cookie ist
If rxFileFilter.test(f.name) Then
'Inhalt prüfen
Dim stream
Set stream = f.OpenAsTextStream
if not stream.AtEndOfStream then
If rxEntry.test(stream.ReadAll) Then
stream.close
f.delete True
deleteCookies = deleteCookies + 1
End If
end if
End If
Next
End Function
'-------------------------------------------------------------------------------
' Private Libraries
'-------------------------------------------------------------------------------
' Die folgende Version cRx() verwende ich als Library in anderen Funktion.
' Sie entspricht der Version mit den Modifier im String.
'/**
' * Dies ist die Minimalversion von cRegExp
' * http://wiki.yaslaw.info/dokuwiki/doku.php/vba/cast/cregexp#abgespeckte_version
' * mögliche Delemiter: @&!/~#=\|
' * mögliche Modifiers: g (Global), i (IgnoreCode, m (Mulitline)
' *
' * @example myRx = cRx("/([a]{2,})/i") 'Finde alle folgen von a. Flag:IgnoreCase
' * @version 2.1.0 (01.12.2014)
' * @param String Pattern mit Delimiter und Modifier analog zu PHP
' * @return Object RegExp-Object
' */
Function cRx(ByVal iPattern)
Set cRx = CreateObject("VBScript.RegExp")
Dim rxP: Set rxP = CreateObject("VBScript.RegExp"): rxP.pattern = "^([@&!/~#=\|])?(.*)\1(?:([Ii])|([Gg])|([Mm]))*$"
Dim sm : Set sm = rxP.execute(iPattern)(0).subMatches
cRx.pattern = sm(1): cRx.IgnoreCase = Not isEmpty(sm(2)): cRx.Global = Not isEmpty(sm(3)): cRx.Multiline = Not isEmpty(sm(4))
End Function