Dateiname auf bestimme Zeichenfolge überprüfen?
Hallo Experten,
leider komme ich bei einer bestimmten Problematik in meinem aktuellen Projekt nicht weiter und wollte daher hier um Hilfe bitten.
Ich möchte im Prinzip nichts weiter machen als zu testen ob in einem bestimmten Verzeichnis Dateien vorhanden sind,
die eine bestimmte Zeichenfolge im Namen haben. Wenn diese Zeichenfolge bzw. wenn eine von zwei verschiedenen Zeichenfolgen (VOK oder TOK), in einer
oder mehreren Dateien im Namen vorkommt, soll eine Warnung wie: "Achtung, keine weiteren Schritte einleiten" kommen. Wenn keine Datei
mit diesen Zeichenfolgen existiert dann soll zum Beispiel: "Alles Okay" ausgegeben werden.
Zum Beispiel:
Das Verzeichnis C:\Dokumente enthält folgende Dateien:
22062016VOK_004.056
test.txt
Präsentation.xms
Seite1.aspx
Dann Sollte jetzt beim anklicken der Anwendung, wie oben beschrieben, eine Ausgabe wie "Achtung..." kommen.
Ich habe in verschiedenen Foren und anderen Seiten gelesen, das dies gut mit VBS oder C++ realisierbar sein soll, jedoch
habe ich bisher nur Lösungsansätze gefunden die den Typ der Datei oder den gesamten Dateinamen überprüfen und nicht
den Dateinamen auf eine bestimmte Zeichenkombination testen. Das Problem hierbei ist auch, dass Dateityp und Länge der
Dateinamen immer variieren, d.h. die Zeichenfolgen VOK oder TOK sind die einzigen konstanten auf die ich testen kann
um mein Ziel zu erreichen. Leider bin ich bisher nicht sonderlich weit gekommen und habe nur Testweise an verschiedenen VBS
Codes herumprobiert, jedoch habe ich dort noch keine Lösung gefunden.
Falls es wichtig sein sollte, ich arbeite mit Win10 64bit, die Anwendung soll auf allen Windows Betriebssystemen ab Win7 aufwärts laufen können.
Idealerweise wäre es auch gut wenn man das ganze im IE oder anderen Browsern darstellen könnte, das ist jedoch nicht
zwingend erforderlich.
Ich wäre sehr dankbar für jeden Hinweis in welcher Sprache und wie sich das ganze am einfachsten lösen lässt. Vielleicht
findet ja jemand etwas im Web was ich übersehen habe oder jemand macht sich sogar die Mühe etwas zusammen
zu basteln. Alle Vorschläge sind willkommen und danke im Voraus.
matzetto
leider komme ich bei einer bestimmten Problematik in meinem aktuellen Projekt nicht weiter und wollte daher hier um Hilfe bitten.
Ich möchte im Prinzip nichts weiter machen als zu testen ob in einem bestimmten Verzeichnis Dateien vorhanden sind,
die eine bestimmte Zeichenfolge im Namen haben. Wenn diese Zeichenfolge bzw. wenn eine von zwei verschiedenen Zeichenfolgen (VOK oder TOK), in einer
oder mehreren Dateien im Namen vorkommt, soll eine Warnung wie: "Achtung, keine weiteren Schritte einleiten" kommen. Wenn keine Datei
mit diesen Zeichenfolgen existiert dann soll zum Beispiel: "Alles Okay" ausgegeben werden.
Zum Beispiel:
Das Verzeichnis C:\Dokumente enthält folgende Dateien:
22062016VOK_004.056
test.txt
Präsentation.xms
Seite1.aspx
Dann Sollte jetzt beim anklicken der Anwendung, wie oben beschrieben, eine Ausgabe wie "Achtung..." kommen.
Ich habe in verschiedenen Foren und anderen Seiten gelesen, das dies gut mit VBS oder C++ realisierbar sein soll, jedoch
habe ich bisher nur Lösungsansätze gefunden die den Typ der Datei oder den gesamten Dateinamen überprüfen und nicht
den Dateinamen auf eine bestimmte Zeichenkombination testen. Das Problem hierbei ist auch, dass Dateityp und Länge der
Dateinamen immer variieren, d.h. die Zeichenfolgen VOK oder TOK sind die einzigen konstanten auf die ich testen kann
um mein Ziel zu erreichen. Leider bin ich bisher nicht sonderlich weit gekommen und habe nur Testweise an verschiedenen VBS
Codes herumprobiert, jedoch habe ich dort noch keine Lösung gefunden.
Falls es wichtig sein sollte, ich arbeite mit Win10 64bit, die Anwendung soll auf allen Windows Betriebssystemen ab Win7 aufwärts laufen können.
Idealerweise wäre es auch gut wenn man das ganze im IE oder anderen Browsern darstellen könnte, das ist jedoch nicht
zwingend erforderlich.
Ich wäre sehr dankbar für jeden Hinweis in welcher Sprache und wie sich das ganze am einfachsten lösen lässt. Vielleicht
findet ja jemand etwas im Web was ich übersehen habe oder jemand macht sich sogar die Mühe etwas zusammen
zu basteln. Alle Vorschläge sind willkommen und danke im Voraus.
matzetto
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 317433
Url: https://administrator.de/forum/dateiname-auf-bestimme-zeichenfolge-ueberpruefen-317433.html
Ausgedruckt am: 22.04.2025 um 22:04 Uhr
8 Kommentare
Neuester Kommentar

Hallo,
Mit VBS durchläufst du den Ordner mit einer Schleife und prüfst den Dateinamen mit Instr() oder über Reguar Expressions.
Ich könnte dir jetzt hier Beispiele in allen Sprachen rein kloppen aber das wäre nicht zielgerichtet.
Du solltest dich schon auf eine Sprache festlegen
Gruß R.
Ich wäre sehr dankbar für jeden Hinweis in welcher Sprache und wie sich das ganze am einfachsten lösen lässt.
Mit jeder! Was brauchst du denn bzw. was hast du bereits an Code ?Mit VBS durchläufst du den Ordner mit einer Schleife und prüfst den Dateinamen mit Instr() oder über Reguar Expressions.
Ich könnte dir jetzt hier Beispiele in allen Sprachen rein kloppen aber das wäre nicht zielgerichtet.
Du solltest dich schon auf eine Sprache festlegen
Gruß R.

Folgenden Text in einer Datei mit der Endung *.hta speichern, Pfade und Suchwörter anpassen (siehe Code-Kommentare) und dann drauf Doppelklicken.
<html>
<head>
<title>My HTML application</title>
<HTA:APPLICATION
APPLICATIONNAME="My HTML application"
ID="MyHTMLapplication"
VERSION="1.0"/>
</head>
<style>
.warning {
color:red;
font-weight:bold;
font-size: 30px;
}
.OK {
color:green;
font-weight:bold;
font-size: 30px;
}
</style>
<script language="VBScript">
Dim fso
Sub Window_OnLoad
Dim extensions,el
' Fenstergröße anpassen
window.resizeTo 500,200
' Dateisystemobjekt
Set fso = CreateObject("Scripting.FileSystemObject")
'Ordner der durchsucht wird
Const SEARCHFOLDER = "D:\Datenordner"
'Zu suchende Dateierweiterungen
extensions = Array("txt","xml")
' Zu suchenden String im Dateinamen
searchstring = "Das suche ich"
'Ausgabe-Element suchen
Set el = document.getElementById("alert")
If CheckFiles(SEARCHFOLDER,extensions,searchstring) Then
el.innerText = "Achtung! Es ist noch mindestens eine alte Datei vorhanden!"
el.className = "warning"
Else
el.innerText = "Sie können problemlos fortfahren!"
el.className = "OK"
End If
End Sub
'Funktion die Dateien sucht und im Erfolg True zurückgibt, ansonsten False.
Function CheckFiles(folder,extensions,searchstring)
For Each file In fso.GetFolder(folder).Files
For Each ext In extensions
If LCase(fso.GetExtensionName(file.Name)) = LCase(ext) And InStr(1,file.Name,searchstring,1) > 0 Then
CheckFiles = True
Exit Function
End If
Next
Next
CheckFiles = False
End Function
</script>
<body bgcolor="white">
<div id="alert"></div>
</body>
</html>

Würde ich eher direkt mit "Regular Expressions" machen:
<html>
<head>
<title>My HTML application</title>
<HTA:APPLICATION
APPLICATIONNAME="My HTML application"
ID="MyHTMLapplication"
VERSION="1.0"/>
</head>
<style>
.warning {
color:red;
font-weight:bold;
font-size: 30px;
}
.OK {
color:green;
font-weight:bold;
font-size: 30px;
}
</style>
<script language="VBScript">
Dim fso,regex
Sub Window_OnLoad
Dim extensions,el
' Fenstergröße anpassen
window.resizeTo 500,200
' Dateisystemobjekt
Set fso = CreateObject("Scripting.FileSystemObject")
Set regex = CreateObject("vbscript.regexp")
regex.IgnoreCase = True
'Ordner der durchsucht wird
Const SEARCHFOLDER = "A:\"
'Ausgabe-Element suchen
Set el = document.getElementById("alert")
If CheckFiles(SEARCHFOLDER,searchstring) Then
el.innerText = "Achtung! Es ist noch mindestens eine alte Datei vorhanden!"
el.className = "warning"
Else
el.innerText = "Sie können problemlos fortfahren!"
el.className = "OK"
End If
End Sub
'Funktion die Dateien sucht und im Erfolg True zurückgibt, ansonsten False.
Function CheckFiles(folder,searchstring)
regex.Pattern = ".*?(VOK|TOK).*\.\d{3}$"
For Each file In fso.GetFolder(folder).Files
If regex.Test(file.Name) Then
CheckFiles = True
Exit Function
End If
Next
CheckFiles = False
End Function
</script>
<body bgcolor="white">
<div id="alert"></div>
</body>
</html>

Änderung siehe letzten Post, alles nun im Regex eingebaut ist sowieso besser.
Wie Regular Expressions aufgebaut sind siehe
https://danielfett.de/de/tutorials/tutorial-regulare-ausdrucke/
Wie Regular Expressions aufgebaut sind siehe
https://danielfett.de/de/tutorials/tutorial-regulare-ausdrucke/