VBS Aktuellste Datei senden

Janfil

Grünschnabel
Hallo,
ich bin auf der Suche nach einer Lösung für mein Problem, ich versuche jeweils die aktuellste Datei zu versenden, jedoch weiss ich einfach nicht wie ich das anstellen soll.
Es werden durch Trigger bei Eintreten eines Ereignisses Druckaufträge in einem Ordner abgelegt, diese sollen per Email später man mit den aktuellen Daten versendet werden.
Kann mir jmd helfen?

Verzeiht meine Unwissenheit...

PS.: Gibt es eine Möglichkeit eine Datei nach dem folgenden Muster zu verketten:
"%" + "Beispiel" + "%"

Grüße
 

Yaslaw

n/a
Moderator
Ja gibt es.
Visual Basic:
dateiname = ""%" & irgendweinevariable & "%"

Den Rest der Frage habe ich nicht verstanden.
 

Janfil

Grünschnabel
es werden Daten in einen Ordner mit einem Zeitstempel abgespeichert, diese Daten würde ich gern selektieren nach der neuersten Datei. Die Neuerste Datei soll später als Anhang versendet werden.
Jedoch weiss ich nicht wie ich die Dateien mit einem Dateipfad vergleichen soll..
 

Yaslaw

n/a
Moderator
Ist der Zeitstempel Bestandteil des Namens? Wenn ja, wie ist der Namen aufgebaut (Format)?

Wozu einen Vergleich von Dateien mit einem Pfad? Ich dachte du willst einfach die neuste.
Dazu alle Dateinamen einlesen. Den Namen parsen und das Datum extrahieren. Das grösste Datum auswählen und entsprechende Datei nehmen.

Nachtrag:
Etwa so sollte es gehen.
Visual Basic:
Const C_FOLDER = "C:\MeinOrdner"

'FileSystemObject öffnen
Dim fso: Set fso = CreateObject("Scripting.FileSystemObject")
Dim f
Dim lastFile
For Each f In fso.GetFolder(C_FOLDER).Files
	If getFileDate(f) > getFileDate(lastFile) Then Set lastFile = f
Next f
If Not lastFile Is Nothing Then
	'//TODO: lastFile per email versenden
End If

Function getFileDate(ByRef iFile)
	If iFile Is Nothing Then
		getFileDate = 0
		Exit Function
	End IF
	'//Todo: Logik um das Datum aus der Datei zu extrahieren
End Function
 
Zuletzt bearbeitet:

Janfil

Grünschnabel
Uhrzeit und Jahr ist enthalten
Format: PRT_OUT\'meineAblage'_YYYYMMDDhhmmssmmm\...

ja so hab ich mir das gedacht, aber wie kann ich Dateien in einem Ordner vergleichen, der durchgehend aktualisiert wird.

bzw. wie soll ich in diesen Ordner reinkommen?
Ich glaub ich steh bisschen auf dem schlauch
 

Yaslaw

n/a
Moderator
Visual Basic:
'FileSystemObject öffnen
Dim fso: Set fso = CreateObject("Scripting.FileSystemObject")
Dim fld
Dim lastFolder

rx.Pattern = C_DATE_PATTERN

For Each fld In fso.GetFolder(PRT_OUT).Folders
	'Da der name immer gleich und sogar sortierbar ist, kann direkt der Ordnername verglichen werden
	If fld.name > lastFolder.name Then Set lastFolder = fld
Next fld
If Not lastFolder Is Nothing Then
	If lastFolder.Files.Count > 0 then
		'//TODO: lastFile per email versenden
		' lastFolder.Files(0)
	End If
End If
 

Yaslaw

n/a
Moderator
Kann sein dass VBS den Einzeiler nicht mag oder beim next die Variable. Ich bin ganz selten in VBS unterwegs....
Versuch mal
Visual Basic:
For Each fld In fso.GetFolder(PRT_OUT).Folders
    'Da der name immer gleich und sogar sortierbar ist, kann direkt der Ordnername verglichen werden
    If fld.name > lastFolder.name Then
        Set lastFolder = fld
    End If
Next fld

'oder
For Each fld In fso.GetFolder(PRT_OUT).Folders
    'Da der name immer gleich und sogar sortierbar ist, kann direkt der Ordnername verglichen werden
    If fld.name > lastFolder.name Then Set lastFolder = fld
Next
 

Neue Beiträge