Hallo zusammen,
Ich hoffe einer von euch kann mir Helfen da ich den Wald vor lauter Bäumen nicht mehr sehe.
Folgendes:
Ich habe ein script geschrieben was mir datein und ordner von einem Fileserver löschen soll.
leider bricht mir das script mit folgendem Fehler ab :
(dateiname) (29, 1) Laufzeitfehler in Microsoft VBScript: Typen unverträglich: '
fso.GetFolder'
Ich hoffe es kann mir jemand helfen
Danke an alle gruss ben
Ich hoffe einer von euch kann mir Helfen da ich den Wald vor lauter Bäumen nicht mehr sehe.
Folgendes:
Ich habe ein script geschrieben was mir datein und ordner von einem Fileserver löschen soll.
leider bricht mir das script mit folgendem Fehler ab :
(dateiname) (29, 1) Laufzeitfehler in Microsoft VBScript: Typen unverträglich: '
fso.GetFolder'
Visual Basic-Quellcode
- ''-Konstanten----------------------------------------------
- Const ForReading = 1, ForWriting = 2, ForAppending = 8
- '-Array Variablen die zu überprüfenden Ordner getrennt mit ; angeben------
- strRootFolder = "C:\test\1test; "
- 'CompName
- 'strComputer =strRootFolder
- '-Variablen-----------------------------------------------
- strRootFolders = split(strRootFolder, ";")
- strLogFile = "F:\Rekursiv_loeschen\log.txt" '-Ablage der Log Datei
- strExcludeFile = "F:\Rekursiv_loeschen\KillfolderExclude.txt" ' In diesem Textfile bitte die zu Exclusion Freigegebenen Verzeichnisse eintragen
- lngDays = 1
- lngRetries = 3 'Anzahl Versuche, wenn Ordner-löschen fehlschlägt
- lngRetSleepTime = 1000 'Wartezeit nach Fehlversuch in ms
- '---
- 'Wenn Statusmeldungen in DOS-Box gewünscht, Script mittels "cscript.exe KillOldFolders.vbs" starten!
- If LCase (Right (WScript.FullName, 11)) <> "cscript.exe" Then boolcsript = False Else boolcscript=True
- Set fso = CreateObject("Scripting.FileSystemObject")
- Set ofolder = fso.GetFolder(strRootFolders)
- Set flog = fso.OpenTextFile(strLogFile, ForAppending, True)
- Writelog "---- Alte Ordner in " & strRootFolders & " werden gelöscht! - " & Now()
- Writelog "Ausgeschlossene Verzeichnisse:"
- Dim arrEx()
- maxExcludes=0
- If fso.FileExists(strExcludeFile) Then
- Set fex = fso.OpenTextFile(strExcludeFile, ForReading)
- Do While Not fex.AtEndOfStream
- maxExcludes=maxExcludes+1
- ReDim Preserve arrEx(maxExcludes)
- arrEx(maxExcludes) = fex.readline()
- Writelog arrEx(maxExcludes)
- Loop
- fex.close
- End If
- Writelog "----"
- 'Durchlaufe alle Unterverzeichnisse
- For Each folder In ofolder.subfolders
- KillfolderSub folder
- Next
- Writelog "---- Script beendet - " & Now()
- if not boolcscript then MsgBox "Script beendet - " & Now()
- '---
- 'ENDE
- '---
- Sub KillfolderSub(objFolder)
- 'On Error Resume Next
- strFolder = objFolder.Path
- ' vardatecreated = objFolder.datecreated
- 'Wenn Ordner in "Exclude"-Liste steht, nicht löschen!
- boolExclude = False
- For i=1 To maxExcludes
- if lcase(strFolder) = lcase(trim(arrEx(i))) then boolExclude = True
- Next
- If boolExclude Then
- Writelog "Ordner " & strFolder & " incl. Unterordner nicht gelöscht (Exclude-Regel!)"
- Else
- 'Durchlaufe alle Unterverzeichnisse
- For Each subfolder In objFolder.subfolders
- KillfolderSub subfolder
- Next
- 'Wenn Ordner vor mehr als x Tagen erstellt wurde...
- ' WScript.Echo vardatecreated & " - "& Date & " - "& lngDays
- ' If vardatecreated < (Date - lngDays) Then
- ' WScript.Echo "alt löschen"
- 'Alle Dateien im Ordner löschen
- For Each file In objFolder.Files
- vardatecreated = file.DateLastModified
- 'Script.Echo file & " - "&vardatecreated & " - "& Date & " - "& lngDays
- If vardatecreated < (Date - lngDays) Then
- Err.Clear
- strFile = file.Path
- fso.DeleteFile strFile, True
- If Err = 0 Then
- Writelog "Datei " & strFile & " gelöscht"
- Else
- Writelog "Datei " & strFile & " konnte nicht gelöscht werden! - Fehler " & Err & " (" & Err.Description & ")"
- End If
- Else
- Writelog "Datei " & strFile & " nicht gelöscht! - zu Neu" & vardatecreated
- End If
- Next
- ' End If
- End If
- On Error Goto 0
- End Sub
- '---
- 'Löschen leerer Ordner
- '---
- mko (strRootFolders)
- Sub mko (sfolder)
- Set fso = CreateObject("Scripting.FileSystemObject")
- Set fsofolder = fso.GetFolder(sFolder)
- For Each subfolder In fsofolder.SubFolders
- mko(subfolder.Path)
- Next
- If fsofolder.Files.Count = 0 And fsofolder.SubFolders.Count = 0 Then
- fsofolder.Delete vbTrue
- End If
- End Sub
- '---
- Sub Writelog(strMessage)
- flog.writeline strMessage
- if boolcscript then WScript.echo strMessage
- End Sub
Ich hoffe es kann mir jemand helfen
Danke an alle gruss ben