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

Ordner durchsuchen und namen in xml Datei schreiben

Frage Entwicklung VB for Applications

Mitglied: Duswald

Duswald (Level 1) - Jetzt verbinden

06.01.2011 um 13:51 Uhr, 3228 Aufrufe, 11 Kommentare

Wie mich Biber gebeten hat mache ich nun mit meinem Proplemchen eine neue Frage auf.
Orginal habe ich meine Frage hier eingebaut gehabt:
http://www.administrator.de/?content=135525

also mit hilfe einiger Mitglieder des forums habe ich folgenden Code mir zusammengebastelt und jetzt auch mit Kommentaren versehen:

Aber leider klappt es nicht ganz wie ich mir erhofft habe
Als erstes gibt er einen Fehler aus auf Zeile 10: Objekt erforderlich

Und dann hab ich es auch nicht hinbekommen, das er schaut nach Dateien die älter sind und diese dann löscht.

Ich hoffe, dass mir da einer im forum weiter helfen kann.

Danke
LG: Andy

01.
Option Explicit 
02.
' Script durchjsucht Subfolders eines angegebenen Hauptfolders 
03.
' Es wird festgestellt ob eine Mindestanzahl von Dateien in einem Subfolder ueberschritten wird  
04.
' Wenn ja, dann werden bestimmte Zeilen in eine vordifinierte XML Datei geschrieben. 
05.
' vorher wird geprueft ob Dateien mit einer Bestimmten Endung aelter als xx tage sind und diese Geloescht  
06.
 
07.
' VARIABLEN DEFINIEREN 
08.
Dim fsoA, tfA, cnt, folderspec, tf, minimumCount, ZielXML, MainFolder, CheckMediaType, MediaTypeAlter 
09.
' mehr als x Dateien muessen vorhanden sein um den Folder zu beruecksichtigen 
10.
Set minimumCount = 1    
11.
'ZielXML Datei festlegen 
12.
Set ZielXML = "C:\Users\Moderation\AppData\Roaming\radio42\ProppFrexx ONAIR\3.0\scripts\NewsDispatcher.pfs" 
13.
' Hauptverzeichnis das nach unterordnern durchsucht wird 
14.
Set MainFolder = "G:\Eigene Musik\000_Redaktion" 
15.
' Welche Dateiendung soll beruecksichtigt werden fuer loeschung? 
16.
Set CheckMediaType = "mp3" 
17.
' Wie lange bleiben MediaType Dateien im Ordner? 
18.
Set MediaTypeAlter = 3 
19.
 
20.
' Sub durchsucht MainFolder 
21.
Sub ShowFolderList(folderspec, tf) 
22.
    Dim fs, f, folder, folderList, s 
23.
    Set fs = CreateObject("Scripting.FileSystemObject") 
24.
    Set f = fs.GetFolder(folderspec) 
25.
    Set folderList = f.SubFolders 
26.
    ' Hier beginnt die Suche 
27.
	For Each folder in folderList 
28.
	' 1 - Pruefe on Dateien mit vordefinierter Dateiendung aelter ist als x Tage und loesche Diese 
29.
	' Fehlt noch ...... Delete CheckMediaType aelter als x Tage 
30.
	 
31.
	 
32.
	' 2 - Jetzt wird geprueft welche Ordner in die XML Datei kommen 
33.
		If folder.Files.Count > minimumCount Then 
34.
		'Bestimmte Folders nicht beachten 
35.
		Select Case f1.name 
36.
		Case "Bauernregeln": 
37.
		Case "blickwinkel": 
38.
        'inix machen 
39.
		Case "Jahreszeiten und Feste Redaktion": 
40.
        'inix machen 
41.
		Case "news-lib-sounds": 
42.
        'inix machen 
43.
		Case "regional-news-lib": 
44.
        'inix machen 
45.
		Case "wetter": 
46.
        'inix machen   
47.
		Case Else 
48.
		' Jetzt gehts los - Ordner die nicht den namen der obigen haben werden 
49.
		' In die XML Datei geschrieben 
50.
		    tf.WriteLine("	    <line>") 
51.
		    tf.WriteLine("	        <mode>Execute</mode>") 
52.
		    tf.WriteLine("	        <entry>" & folder.name & "</entry>") 
53.
		    tf.WriteLine("	        <count>3</count>") 
54.
		    tf.WriteLine("	        <options>3</options>") 
55.
		    tf.WriteLine("	    </line>") 
56.
		 
57.
	        s = s & folder.name 
58.
	        s = s &  vbCrLf 
59.
		End Select 
60.
		End If 
61.
    Next 
62.
	' Zu Pruefzwecken eine Meldung ausgeben 
63.
    MsgBox s 
64.
End Sub 
65.
 
66.
 
67.
Set fsoA = CreateObject("Scripting.FileSystemObject") 
68.
Set tfA = fsoA.CreateTextFile(ZielXML, True) 
69.
' Inhalte werden in Ziel XML geschrieben 
70.
tfA.WriteLine("<?xml version='1.0' encoding='utf-8'?>") 
71.
tfA.WriteLine("<script version='1'>") 
72.
tfA.WriteLine("    <title>NewsDispatcher</title>") 
73.
tfA.WriteLine("    <creator>ProppFrexx ONAIR</creator>") 
74.
tfA.WriteLine("    <date>2011-01-03T15:31:58+01:00</date>") 
75.
tfA.WriteLine("    <settings>") 
76.
tfA.WriteLine("        <mode>Random</mode>") 
77.
tfA.WriteLine("        <loopScriptLine>0</loopScriptLine>") 
78.
tfA.WriteLine("        <reloadMediaLibrary />") 
79.
tfA.WriteLine("        <asyncReloading>true</asyncReloading>") 
80.
tfA.WriteLine("        <initialTrack />") 
81.
tfA.WriteLine("        <archiveFilename />") 
82.
tfA.WriteLine("        <additionalSongHistoryFilename />") 
83.
tfA.WriteLine("        <maxHistory>0</maxHistory>") 
84.
tfA.WriteLine("        <clearHistoryAtReload>true</clearHistoryAtReload>") 
85.
tfA.WriteLine("        <jingleMediaLibrary />") 
86.
tfA.WriteLine("        <jingleFrequencyFrom>0</jingleFrequencyFrom>") 
87.
tfA.WriteLine("        <jingleFrequencyTo>0</jingleFrequencyTo>") 
88.
tfA.WriteLine("        <jingleMode>Random</jingleMode>") 
89.
tfA.WriteLine("        <jingleCount>1</jingleCount>") 
90.
tfA.WriteLine("        <advertMediaLibrary />") 
91.
tfA.WriteLine("        <advertFrequencyFrom>0</advertFrequencyFrom>") 
92.
tfA.WriteLine("        <advertFrequencyTo>0</advertFrequencyTo>") 
93.
tfA.WriteLine("        <advertMode>Random</advertMode>") 
94.
tfA.WriteLine("        <advertCount>1</advertCount>") 
95.
tfA.WriteLine("    </settings>") 
96.
tfA.WriteLine("    <scriptLines>") 
97.
' Aufruf der Subroutine 
98.
ShowFolderList MainFolder, tfA  
99.
' Abschluszeilen eintragen und Datei schliessen 
100.
tfA.WriteLine("    </scriptLines>") 
101.
tfA.WriteLine("    <fixTimeElements />") 
102.
tfA.WriteLine("</script>") 
103.
tfA.Close 
104.
 
Mitglied: KingNothing
06.01.2011 um 15:01 Uhr
Hi Duswald,

jetzt zu deinem Problem in Zeile 10:
Du versuchst einer Variablen mit Hilfe des Schlüsselwortes "Set" ein Objekt zuzuweisen, dass keines ist.

Da VBS keine expliziten Typzuweisungen bei Variablen voraussetzt (kann man aber trotzdem machen, z.B. 'Dim intTest as Integer', aber das führt hier zu weit ...), kann man einer Variable praktisch alles zuweisen. das Schlüsselwort Set dient dazu, eine Variable mit einem Objekt zu verknüpfen wie z.B. bei einem Dateisystemobjekt: 'Set objFSO = GetObject("Scripting.FileSystemObject").
Willst du der Variable dagegen einen primitiven Datentyp wie in deinem Fall Integer zuweise, lass das 'Set' einfach weg: 'minCounter = 1'. Genau so verhält es sich auch mit Fließkommavariablen oder Strings.

Siehe auch:
http://de.wikipedia.org/wiki/Primitive_Datentypen#Elementare_Datentypen
http://de.wikipedia.org/wiki/Objekt_(Programmierung)
http://de.wikipedia.org/wiki/Deklaration_(Programmierung)

LG Martin
Bitte warten ..
Mitglied: 76109
06.01.2011 um 15:45 Uhr
Hallo Andy!

Zunächst mal alle Set's von Codezeile 10 - 18 entfernen

Den Grund hat KingNothing ja schon erklärt. Allerdings sind in VBS keine Typ-Zuweisungen alla As Integer, As Date.... zulässig

Gruß Dieter
Bitte warten ..
Mitglied: Duswald
06.01.2011 um 15:50 Uhr
Super King

Das hat auf alle Fälle schon mal so funktioniert, jetzt läuft das skript.

wie kann ich nun noch das Problem lösen mit dem löschen alter mp3 Dateien. Hat da jemand mir einen tipp?

Danke
Bitte warten ..
Mitglied: 76109
06.01.2011 um 16:33 Uhr
Hallo Andy!

In etwa so:
01.
    CheckMediaType = "mp3" 
02.
    MediaTypeAlter = 3      'In Tagen 
03.
     
04.
   '........... 
05.
     
06.
    For Each Folder In folderList 
07.
        For Each File In Folder.Files 
08.
            If LCase(fs.GetExtensionName(File.Name)) = LCase(CheckMediaType) Then 
09.
               'Test Datei-Datum kleiner (Jetzt - Anzahl Tage) 
10.
                If File.DateLastModified < DateAdd("d", -MediaTypeAlter, Now) Then File.Delete  'Änderungsdatum 
11.
               'oder 
12.
                If File.DateCreated < DateAdd("d", -MediaTypeAlter, Now) Then File.Delete       'Erstellungsdatum 
13.
            End If 
14.
        Next 
15.
    
16.
   '........... 
17.
    Next
Dir ist aber schon klar, dass Du nur die 1. SubFolder-Ebene dursuchst und nicht alle darunter liegenden SubFolder's?

Gruß Dieter
Bitte warten ..
Mitglied: KingNothing
06.01.2011 um 17:55 Uhr
Hi,

@Dieter: Ja, ich war mir nicht mehr sicher, weil ich das auch schon mit expliziter Typ-Zuweisung gesehen habe. Bin mir aber nicht mehr sicher, ob das VBS, VBA oder doch VB6 war.

@andy: Die Lösung für dein Problem ist Rekursion. Was das ist, steht hier: http://de.wikipedia.org/wiki/Rekursive_Programmierung
Im Klartext: In deiner Funktion durchläufst du ja alle Ordner. Ruf einfach für jeden Ordner die Funktion in sich selber nochmal auf, dann sollte es klappen.

LG

Martin
Bitte warten ..
Mitglied: Duswald
07.01.2011 um 09:12 Uhr
Hallo Cracks

Danke für die Mega Hilfe. Es klappt perfekt!

Ich will das auch gar nicht rekursive machen, es soll nur eine Ebene beachten.

Eine Frage habe ich noch wegen dem Select case.

Es sieht sehr komisch aus, kann man mit vbs auch arrays bestimmen, wo man so zu sagen die Liste der nicht zu beachtenden Folders mit Kommas rein macht oder so, ähnlich wie das bei php geht?

Den momentan sieht das skript nun wie folgt aus, und ich habe das gefühl, das immer noch unnötige Zeilen code sind - Wie kann man das noch optimieren.

danke
01.
Option Explicit 
02.
' Script durchjsucht Subfolders eines angegebenen Hauptfolders 
03.
' Es wird festgestellt ob eine Mindestanzahl von Dateien in einem Subfolder ueberschritten wird  
04.
' Wenn ja, dann werden bestimmte Zeilen in eine vordifinierte XML Datei geschrieben. 
05.
' vorher wird geprueft ob Dateien mit einer Bestimmten Endung aelter als xx tage sind und diese Geloescht  
06.
 
07.
' VARIABLEN DEFINIEREN 
08.
Dim fsoA, tfA, cnt, folderspec, tf, minimumCount, ZielXML, MainFolder, CheckMediaType, MediaTypeAlter 
09.
 
10.
' mehr als x Dateien muessen vorhanden sein um den Folder zu beruecksichtigen 
11.
minimumCount = 1    
12.
'ZielXML Datei festlegen 
13.
ZielXML = "C:\Users\Moderation\AppData\Roaming\radio42\ProppFrexx ONAIR\3.0\scripts\NewsDispatcher.pfs" 
14.
' Hauptverzeichnis das nach unterordnern durchsucht wird 
15.
MainFolder = "G:\Eigene Musik\000_Redaktion" 
16.
' Welche Dateiendung soll beruecksichtigt werden fuer loeschung? 
17.
CheckMediaType = "mp3" 
18.
' Wie lange bleiben MediaType Dateien im Ordner? 
19.
MediaTypeAlter = 2 
20.
 
21.
 
22.
' Sub durchsucht MainFolder 
23.
Sub ShowFolderList(folderspec, tf) 
24.
    Dim fs, f, folder, folderList, s, File 
25.
    Set fs = CreateObject("Scripting.FileSystemObject") 
26.
    Set f = fs.GetFolder(folderspec) 
27.
    Set folderList = f.SubFolders 
28.
    ' Hier beginnt die Suche 
29.
	For Each folder in folderList 
30.
	' 1 - Pruefe on Dateien mit vordefinierter Dateiendung aelter ist als x Tage und loesche Diese 
31.
	' Fehlt noch ...... Delete CheckMediaType aelter als x Tage 
32.
     
33.
		   '........... 
34.
		Select Case folder.name 
35.
		Case "Bauernregeln": 
36.
		Case "blickwinkel": 
37.
        'inix machen 
38.
		Case "Jahreszeiten und Feste Redaktion": 
39.
        'inix machen 
40.
		Case "news-lib-sounds": 
41.
        'inix machen 
42.
		Case "regional-news-lib": 
43.
        'inix machen 
44.
		Case "wetter": 
45.
        'inix machen   
46.
		Case Else	 
47.
		        For Each File In Folder.Files 
48.
		            If LCase(fs.GetExtensionName(File.Name)) = LCase(CheckMediaType) Then 
49.
		               'Test Datei-Datum kleiner (Jetzt - Anzahl Tage) 
50.
		               'If File.DateLastModified < DateAdd("d", -MediaTypeAlter, Now) Then File.Delete  'Änderungsdatum 
51.
		               'oder 
52.
		                If File.DateCreated < DateAdd("d", -MediaTypeAlter, Now) Then File.Delete       'Erstellungsdatum 
53.
		            End If 
54.
		        Next 
55.
		End Select 
56.
		   '........... 
57.
	 
58.
	' 2 - Jetzt wird geprueft welche Ordner in die XML Datei kommen 
59.
		If folder.Files.Count > minimumCount Then 
60.
		'Bestimmte Folders nicht beachten 
61.
		Select Case folder.name 
62.
		Case "Bauernregeln": 
63.
		Case "blickwinkel": 
64.
        'inix machen 
65.
		Case "Jahreszeiten und Feste Redaktion": 
66.
        'inix machen 
67.
		Case "news-lib-sounds": 
68.
        'inix machen 
69.
		Case "regional-news-lib": 
70.
        'inix machen 
71.
		Case "wetter": 
72.
        'inix machen   
73.
		Case Else 
74.
		' Jetzt gehts los - Ordner die nicht den namen der obigen haben werden 
75.
		' In die XML Datei geschrieben 
76.
		    tf.WriteLine("	    <line>") 
77.
		    tf.WriteLine("	        <mode>Execute</mode>") 
78.
		    tf.WriteLine("	        <entry>" & folder.name & "</entry>") 
79.
		    tf.WriteLine("	        <count>3</count>") 
80.
		    tf.WriteLine("	        <options>3</options>") 
81.
		    tf.WriteLine("	    </line>") 
82.
		 
83.
	        s = s & folder.name 
84.
	        s = s &  vbCrLf 
85.
		End Select 
86.
		End If 
87.
    Next 
88.
	' Zu Pruefzwecken eine Meldung ausgeben 
89.
    ' MsgBox s 
90.
End Sub 
91.
 
92.
 
93.
Set fsoA = CreateObject("Scripting.FileSystemObject") 
94.
Set tfA = fsoA.CreateTextFile(ZielXML, True) 
95.
' Inhalte werden in Ziel XML geschrieben 
96.
tfA.WriteLine("<?xml version='1.0' encoding='utf-8'?>") 
97.
tfA.WriteLine("<script version='1'>") 
98.
tfA.WriteLine("    <title>NewsDispatcher</title>") 
99.
tfA.WriteLine("    <creator>ProppFrexx ONAIR</creator>") 
100.
tfA.WriteLine("    <date>2011-01-03T15:31:58+01:00</date>") 
101.
tfA.WriteLine("    <settings>") 
102.
tfA.WriteLine("        <mode>Random</mode>") 
103.
tfA.WriteLine("        <loopScriptLine>0</loopScriptLine>") 
104.
tfA.WriteLine("        <reloadMediaLibrary />") 
105.
tfA.WriteLine("        <asyncReloading>true</asyncReloading>") 
106.
tfA.WriteLine("        <initialTrack />") 
107.
tfA.WriteLine("        <archiveFilename />") 
108.
tfA.WriteLine("        <additionalSongHistoryFilename />") 
109.
tfA.WriteLine("        <maxHistory>0</maxHistory>") 
110.
tfA.WriteLine("        <clearHistoryAtReload>true</clearHistoryAtReload>") 
111.
tfA.WriteLine("        <jingleMediaLibrary />") 
112.
tfA.WriteLine("        <jingleFrequencyFrom>0</jingleFrequencyFrom>") 
113.
tfA.WriteLine("        <jingleFrequencyTo>0</jingleFrequencyTo>") 
114.
tfA.WriteLine("        <jingleMode>Random</jingleMode>") 
115.
tfA.WriteLine("        <jingleCount>1</jingleCount>") 
116.
tfA.WriteLine("        <advertMediaLibrary />") 
117.
tfA.WriteLine("        <advertFrequencyFrom>0</advertFrequencyFrom>") 
118.
tfA.WriteLine("        <advertFrequencyTo>0</advertFrequencyTo>") 
119.
tfA.WriteLine("        <advertMode>Random</advertMode>") 
120.
tfA.WriteLine("        <advertCount>1</advertCount>") 
121.
tfA.WriteLine("    </settings>") 
122.
tfA.WriteLine("    <scriptLines>") 
123.
' Aufruf der Subroutine 
124.
ShowFolderList MainFolder, tfA  
125.
' Abschluszeilen eintragen und Datei schliessen 
126.
tfA.WriteLine("    </scriptLines>") 
127.
tfA.WriteLine("    <fixTimeElements />") 
128.
tfA.WriteLine("</script>") 
129.
tfA.Close
Bitte warten ..
Mitglied: 76109
07.01.2011 um 12:20 Uhr
Hallo Andy!

Das wäre mein Lösungsvorschlag zu dem Ganzen:
01.
Option Explicit 
02.
 
03.
Const FileCountMin = 1 
04.
Const MediaTypeAlter = 2    'In Tagen 
05.
Const CheckMediaType = "mp3" 
06.
 
07.
Const StartFolder = "G:\Eigene Musik\000_Redaktion" 
08.
Const XmlFilePath = "C:\Users\Moderation\AppData\Roaming\radio42\ProppFrexx ONAIR\3.0\scripts\NewsDispatcher.pfs" 
09.
 
10.
Const NoFolders = "Bauernregeln;Blickwinkel;Jahreszeiten und Feste Redaktion;News-Lib-Sounds;Regional-News-Lib;Wetter" 
11.
 
12.
Const TextCompare = 1   'Dictionary Compare Text 
13.
 
14.
Dim Fso, File, XmlFile, Folder, SubFolder, IgnoreFolders, FolderList 
15.
 
16.
'Main Begin 
17.
    Set FolderList = CreateObject("Scripting.Dictionary") 
18.
    Set Fso = CreateObject("Scripting.FileSystemObject") 
19.
     
20.
    FolderList.CompareMode = TextCompare 
21.
 
22.
    IgnoreFolders = Split(NoFolders, ";") 
23.
     
24.
   'NoFolders registrieren (Key, Wert (Wert unwichtig, geprüft wird auf Key.Exists) 
25.
    For Each Folder In IgnoreFolders 
26.
        FolderList.Add Folder, False 
27.
    Next 
28.
     
29.
    Call OpenXmlFile(XmlFilePath) 
30.
     
31.
    For Each SubFolder In Fso.GetFolder(StartFolder).SubFolders 
32.
        If Not FolderList.Exists(SubFolder.Name) Then 
33.
            For Each File In SubFolder.Files 
34.
                If LCase(Fso.GetExtensionName(File.Name)) = LCase(CheckMediaType) Then 
35.
                    If File.DateCreated < DateAdd("d", -MediaTypeAlter, Now) Then File.Delete  'Erstellungsdatum 
36.
                End If 
37.
            Next 
38.
             
39.
            If SubFolder.Files.Count > FileCountMin Then Call WriteXmlFile(SubFolder.Name) 
40.
        End If 
41.
    Next 
42.
 
43.
    Call CloseXmlFile 
44.
     
45.
    MsgBox "Fertig!", vbInformation, "Ordnersuche..." 
46.
'Main End 
47.
 
48.
Sub OpenXmlFile(ByRef Path) 
49.
    Set XmlFile = Fso.CreateTextFile(Path, True) 
50.
 
51.
    With XmlFile 
52.
        .WriteLine "<?xml version='1.0' encoding='utf-8'?>" 
53.
        .WriteLine "<script version='1'>" 
54.
        .WriteLine vbTab & "<title>NewsDispatcher</title>" 
55.
        .WriteLine vbTab & "<creator>ProppFrexx ONAIR</creator>" 
56.
        .WriteLine vbTab & "<date>2011-01-03T15:31:58+01:00</date>" 
57.
        .WriteLine vbTab & "<settings>" 
58.
        .WriteLine vbTab & vbTab & "<mode>Random</mode>" 
59.
        .WriteLine vbTab & vbTab & "<loopScriptLine>0</loopScriptLine>" 
60.
        .WriteLine vbTab & vbTab & "<reloadMediaLibrary />" 
61.
        .WriteLine vbTab & vbTab & "<asyncReloading>true</asyncReloading>" 
62.
        .WriteLine vbTab & vbTab & "<initialTrack />" 
63.
        .WriteLine vbTab & vbTab & "<archiveFilename />" 
64.
        .WriteLine vbTab & vbTab & "<additionalSongHistoryFilename />" 
65.
        .WriteLine vbTab & vbTab & "<maxHistory>0</maxHistory>" 
66.
        .WriteLine vbTab & vbTab & "<clearHistoryAtReload>true</clearHistoryAtReload>" 
67.
        .WriteLine vbTab & vbTab & "<jingleMediaLibrary />" 
68.
        .WriteLine vbTab & vbTab & "<jingleFrequencyFrom>0</jingleFrequencyFrom>" 
69.
        .WriteLine vbTab & vbTab & "<jingleFrequencyTo>0</jingleFrequencyTo>" 
70.
        .WriteLine vbTab & vbTab & "<jingleMode>Random</jingleMode>" 
71.
        .WriteLine vbTab & vbTab & "<jingleCount>1</jingleCount>" 
72.
        .WriteLine vbTab & vbTab & "<advertMediaLibrary />" 
73.
        .WriteLine vbTab & vbTab & "<advertFrequencyFrom>0</advertFrequencyFrom>" 
74.
        .WriteLine vbTab & vbTab & "<advertFrequencyTo>0</advertFrequencyTo>" 
75.
        .WriteLine vbTab & vbTab & "<advertMode>Random</advertMode>" 
76.
        .WriteLine vbTab & vbTab & "<advertCount>1</advertCount>" 
77.
        .WriteLine vbTab & "</settings>" 
78.
        .WriteLine vbTab & "<scriptLines>" 
79.
    End With 
80.
End Sub 
81.
 
82.
Sub WriteXmlFile(ByRef FolderName) 
83.
    With XmlFile 
84.
        .WriteLine vbTab & vbTab & "<line>" 
85.
        .WriteLine vbTab & vbTab & vbTab & "<mode>Execute</mode>" 
86.
        .WriteLine vbTab & vbTab & vbTab & "<entry>" & FolderName & "</entry>" 
87.
        .WriteLine vbTab & vbTab & vbTab & "<count>3</count>" 
88.
        .WriteLine vbTab & vbTab & vbTab & "<options>3</options>" 
89.
        .WriteLine vbTab & vbTab & "</line>" 
90.
    End With 
91.
End Sub 
92.
 
93.
Sub CloseXmlFile() 
94.
    With XmlFile 
95.
        .WriteLine vbTab & "<\scriptLines>" 
96.
        .WriteLine vbTab & "<fixTimeElements />" 
97.
        .WriteLine "</script>" 
98.
        .Close 
99.
    End With 
100.
End Sub
Gruß Dieter

[edit] Codezeile 49 geändert [/edit]
Bitte warten ..
Mitglied: Duswald
08.01.2011 um 16:56 Uhr
danke euch für diese Hilfe -Klappt supi und hilft uns nun sehr bei der Automation unserer Nachrichten Redaktion

Lauter Profis hier ich merk schon
Bitte warten ..
Mitglied: 76109
08.01.2011 um 17:23 Uhr
Hallo Andy!

Zitat von Duswald:
danke euch für diese Hilfe -Klappt supi und hilft uns nun sehr bei der Automation unserer Nachrichten Redaktion
Freut mich
Lauter Profis hier ich merk schon
Bin auch noch Anfänger

Noch ein Hinweis zu Codezeile 35:
Aktuell werden die Anzahl Tage inklusive Zeit gerechnet (08.01.2011 17:28:26).

Wenn aber nur das Datum mit Tage gerechnet werden soll, dann die Codezeile 35 ändern in:
If DateValue(File.DateCreated) < DateValue(DateAdd("d", -MediaTypeAlter, Now)) Then File.Delete
oder
If DateValue(File.DateCreated) < DateAdd("d", -MediaTypeAlter, Date) Then File.Delete

Gruß Dieter

PS. Und das grüne Gelöst-Häkchen nicht vergessen
Bitte warten ..
Mitglied: Duswald
08.01.2011 um 17:32 Uhr
Ah guter hinweis, so genau gehts da eh nicht und ab und an muss ich die Zeit auch verlängern wenn manche Meldungen länge rlaufen sollen.

Ich hab auch schon gedacht, ob man das Löschdatum irgendwie in den Dateinamen rein machen sollte zB so:

Nachrichten titel bla bla -080111.mp4

Und dann nimmt man das "-" als Teiler und sobald in dem Fall der 8.1.2011 erreicht ist, dann würde die Datei gelöscht
Optional könnte man dann zb mit -000000 dem Script sagen, das wird standartmässig nach x Tagen (laut Variable) gelöscht

mit PHP würde ich das gut hinbringen, aber mit VBS - puuuhhh
Bitte warten ..
Mitglied: 76109
08.01.2011 um 19:04 Uhr
Hallo Andy!

Also, wenn das Haltbarkeitsdatum im Dateinamen steht z.B. NachrichtDatei-08012011.mp3, dann würde ich es schematisch in etwa so machen:

01.
If (File.Attribute And Archiv-Bit) <> 0 Then 
02.
    If  DateiNamenDatum <= Aktuelles Datum Then Archiv-Bit löschen  'Inkl. Dateien, die zuvor noch nicht erfasst wurden 
03.
Else 
04.
   If DateiNamenDatum < (Aktuelles Datum - Anzahl Tage) Then Datei löschen 
05.
End If
Gruß Dieter
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
XML
XML Datei Fehler? (1)

Frage von Patrick-IT zum Thema XML ...

Batch & Shell
Script zum XML Datei Umschreiben (12)

Frage von cberndt zum Thema Batch & Shell ...

PHP
gelöst Externe XML-Datei in PHP auslesen (18)

Frage von Akrosh zum Thema PHP ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...