ria-ingo
Goto Top

VBS: Auflistung aller Dateien mit A Flag rekursiv im Verzeichnisbaum

Hallo zusammen,
ich habe Dennis Bistron Script auf seiner Webseite http://blog.bistron.eu/scripting/e-mail-benachrichtigung-bei-neuenveral ... so modifiziert, das es alle Dateien mit Archiv Flag auflistet.
Das macht es auch wunderbar, allerdings nur im aktuellen Verzeichnis.
Leider benötige ich das nun mit allen Dateien incl. Pfad des Unterverzeichnisses und des Dateinamens.

Ich bekomme den Loop nicht hin, auch Unterverzeichnisse zu durchforsten.
Hat da jemand vielleicht ein Codeschnipsel für mich parat ?

vielen Dank im Voraus
Lg Ingo


CONST F_ATTR_HIDDEN = 2
CONST F_ATTR_STANDARD = 32 ‘ Normal ist nur Attribut Archiv

Function getArchivFlag(strF)

Set MyFSO = CreateObject(“Scripting.FileSystemObject”)
Set oFS=MyFSO.GetFile(strF) ‘ obj File Source

If oFS.Attributes AND F_ATTR_STANDARD Then
getArchivFlag = “true”
‘Danach wird das Archivflag wegegnommen
oFS.Attributes=oFS.attributes-32
End If

End Function

Danach darauf abgefragt und alle Dateien in die E-Mail gepackt, nicht nur die Letzte :

‘* Neustes Objekt ermitteln
For Each objF In colObj
strFName = objF.Name
‘* Test Endung
If IsEmpty(strExt) Or LCase(Right(strFName, intLenExt)) = LCase(strExt) Then
intFAge = getArchivFlag(objF.Path)

If intFAge = “true” then
‘strNewestF = objF.Name
strNewestF = strNewestF & objF.Name & vbCRLF

End if
End If
Next

Content-Key: 208770

Url: https://administrator.de/contentid/208770

Printed on: April 25, 2024 at 06:04 o'clock

Member: bastla
bastla Jun 27, 2013 updated at 17:54:19 (UTC)
Goto Top
Hallo RIA-Ingo!

Der "Changes.txt" des verlinkten Scripts entnehme ich
06.05.2013
- Option -ca: Erkennung neuer Dateien am Archiv-Attribut
- Option -ra: Gesetztes Archiv-Attribut entfernen
- Option -s: Durchsuchen von Unterordnern
- MAXFILES neuste Objekte werden in E-Mail aufgelistet
- sollte doch eigentlich alles leisten, was Du Dir wünschst (hinsichtlich der Rekursion siehe Zeilen 152 bis 154) ...

... und nur zur Sicherheit: Wenn Du alle Dateien aufgelistet haben willst, musst Du MAXFILES auf 0 setzen.

Grüße
bastla

P.S.: Ich weiß ja nicht, ob es in Kommentaren in Bistrons Blog eine Möglichkeit gibt, Code passend zu formatieren - hier geht's auf jeden Fall (und auch noch nachträglich face-wink): Formatting instructions in the posts
Member: Biber
Biber Jul 08, 2013, updated at Jul 09, 2013 at 07:54:38 (UTC)
Goto Top
Moin, RIA-Ingo,

fände ich eigentlich schade, diesen Beitrag in die Tonne zu kloppen - aber im jetzigen Zustand nützt er ja den nachfolgenden Generationen absolutely nothing.

Magst du vielleicht doch mal Feedback zu bastlas Lösungsvorschlag geben?

Und um der Frage zuvorzukommen:
Nein, es bereitet mir kein Vergnügen, anderen Erwachsenen erklären zu müssen, wie ein Forum in einer idealen Welt funktionieren würde.

Grüße
Biber
Member: RIA-Ingo
RIA-Ingo Jul 09, 2013 at 07:00:56 (UTC)
Goto Top
Hallo Biber,

gerne face-smile

(Ich finde es am Schlimmsten, wenn jemand schreibt, Problem gelöst, aber nicht , wie)
Also, das Script habe ich aus Zeitgründen nicht testen können.
Wir werden jetzt doch die eingebauten Funktionen von Robocopy benutzen. Der Kernstring sieht so aus:

robocopy %source% %target% /XD _Uploads* /R:0 /NP /NDL /MIR /NJH /LOG+:%Destination%-MirrorResult

Der "Summary Report" von Robocopy reicht erstmal.
Wenn ich mal wieder Luft habe (vielleicht kurz vor der Rente) werde ich das Script vielleicht optimieren.

Lg Ingo