Hilfe bei Fehler 800A0005

  • VBScript

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Refnex.

    Hilfe bei Fehler 800A0005

    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'



    Visual Basic-Quellcode

    1. ''-Konstanten----------------------------------------------
    2. Const ForReading = 1, ForWriting = 2, ForAppending = 8
    3. '-Array Variablen die zu überprüfenden Ordner getrennt mit ; angeben------
    4. strRootFolder = "C:\test\1test; "
    5. 'CompName
    6. 'strComputer =strRootFolder
    7. '-Variablen-----------------------------------------------
    8. strRootFolders = split(strRootFolder, ";")
    9. strLogFile = "F:\Rekursiv_loeschen\log.txt" '-Ablage der Log Datei
    10. strExcludeFile = "F:\Rekursiv_loeschen\KillfolderExclude.txt" ' In diesem Textfile bitte die zu Exclusion Freigegebenen Verzeichnisse eintragen
    11. lngDays = 1
    12. lngRetries = 3 'Anzahl Versuche, wenn Ordner-löschen fehlschlägt
    13. lngRetSleepTime = 1000 'Wartezeit nach Fehlversuch in ms
    14. '---
    15. 'Wenn Statusmeldungen in DOS-Box gewünscht, Script mittels "cscript.exe KillOldFolders.vbs" starten!
    16. If LCase (Right (WScript.FullName, 11)) <> "cscript.exe" Then boolcsript = False Else boolcscript=True
    17. Set fso = CreateObject("Scripting.FileSystemObject")
    18. Set ofolder = fso.GetFolder(strRootFolders)
    19. Set flog = fso.OpenTextFile(strLogFile, ForAppending, True)
    20. Writelog "---- Alte Ordner in " & strRootFolders & " werden gelöscht! - " & Now()
    21. Writelog "Ausgeschlossene Verzeichnisse:"
    22. Dim arrEx()
    23. maxExcludes=0
    24. If fso.FileExists(strExcludeFile) Then
    25. Set fex = fso.OpenTextFile(strExcludeFile, ForReading)
    26. Do While Not fex.AtEndOfStream
    27. maxExcludes=maxExcludes+1
    28. ReDim Preserve arrEx(maxExcludes)
    29. arrEx(maxExcludes) = fex.readline()
    30. Writelog arrEx(maxExcludes)
    31. Loop
    32. fex.close
    33. End If
    34. Writelog "----"
    35. 'Durchlaufe alle Unterverzeichnisse
    36. For Each folder In ofolder.subfolders
    37. KillfolderSub folder
    38. Next
    39. Writelog "---- Script beendet - " & Now()
    40. if not boolcscript then MsgBox "Script beendet - " & Now()
    41. '---
    42. 'ENDE
    43. '---
    44. Sub KillfolderSub(objFolder)
    45. 'On Error Resume Next
    46. strFolder = objFolder.Path
    47. ' vardatecreated = objFolder.datecreated
    48. 'Wenn Ordner in "Exclude"-Liste steht, nicht löschen!
    49. boolExclude = False
    50. For i=1 To maxExcludes
    51. if lcase(strFolder) = lcase(trim(arrEx(i))) then boolExclude = True
    52. Next
    53. If boolExclude Then
    54. Writelog "Ordner " & strFolder & " incl. Unterordner nicht gelöscht (Exclude-Regel!)"
    55. Else
    56. 'Durchlaufe alle Unterverzeichnisse
    57. For Each subfolder In objFolder.subfolders
    58. KillfolderSub subfolder
    59. Next
    60. 'Wenn Ordner vor mehr als x Tagen erstellt wurde...
    61. ' WScript.Echo vardatecreated & " - "& Date & " - "& lngDays
    62. ' If vardatecreated < (Date - lngDays) Then
    63. ' WScript.Echo "alt löschen"
    64. 'Alle Dateien im Ordner löschen
    65. For Each file In objFolder.Files
    66. vardatecreated = file.DateLastModified
    67. 'Script.Echo file & " - "&vardatecreated & " - "& Date & " - "& lngDays
    68. If vardatecreated < (Date - lngDays) Then
    69. Err.Clear
    70. strFile = file.Path
    71. fso.DeleteFile strFile, True
    72. If Err = 0 Then
    73. Writelog "Datei " & strFile & " gelöscht"
    74. Else
    75. Writelog "Datei " & strFile & " konnte nicht gelöscht werden! - Fehler " & Err & " (" & Err.Description & ")"
    76. End If
    77. Else
    78. Writelog "Datei " & strFile & " nicht gelöscht! - zu Neu" & vardatecreated
    79. End If
    80. Next
    81. ' End If
    82. End If
    83. On Error Goto 0
    84. End Sub
    85. '---
    86. 'Löschen leerer Ordner
    87. '---
    88. mko (strRootFolders)
    89. Sub mko (sfolder)
    90. Set fso = CreateObject("Scripting.FileSystemObject")
    91. Set fsofolder = fso.GetFolder(sFolder)
    92. For Each subfolder In fsofolder.SubFolders
    93. mko(subfolder.Path)
    94. Next
    95. If fsofolder.Files.Count = 0 And fsofolder.SubFolders.Count = 0 Then
    96. fsofolder.Delete vbTrue
    97. End If
    98. End Sub
    99. '---
    100. Sub Writelog(strMessage)
    101. flog.writeline strMessage
    102. if boolcscript then WScript.echo strMessage
    103. End Sub


    Ich hoffe es kann mir jemand helfen

    Danke an alle gruss ben
    Versuch's mal damit:

    Visual Basic-Quellcode

    1. ''-Konstanten----------------------------------------------
    2. Const ForReading = 1, ForWriting = 2, ForAppending = 8
    3. strRootFolder = "C:\test\1test" '<--- *****
    4. 'CompName
    5. 'strComputer =strRootFolder
    6. '-Variablen-----------------------------------------------
    7. strLogFile = "F:\Rekursiv_loeschen\log.txt" '-Ablage der Log Datei
    8. strExcludeFile = "F:\Rekursiv_loeschen\KillfolderExclude.txt" ' In diesem Textfile bitte die zu Exclusion Freigegebenen Verzeichnisse eintragen
    9. lngDays = 1
    10. lngRetries = 3 'Anzahl Versuche, wenn Ordner-löschen fehlschlägt
    11. lngRetSleepTime = 1000 'Wartezeit nach Fehlversuch in ms
    12. '---
    13. 'Wenn Statusmeldungen in DOS-Box gewünscht, Script mittels "cscript.exe KillOldFolders.vbs" starten!
    14. If LCase (Right (WScript.FullName, 11)) <> "cscript.exe" Then boolcsript = False Else boolcscript=True
    15. Set fso = CreateObject("Scripting.FileSystemObject")
    16. Set ofolder = fso.GetFolder(strRootFolder) '<---- ****
    17. Set flog = fso.OpenTextFile(strLogFile, ForAppending, True)
    18. Writelog "---- Alte Ordner in " & strRootFolders & " werden gelöscht! - " & Now()
    19. Writelog "Ausgeschlossene Verzeichnisse:"
    20. Dim arrEx()
    21. maxExcludes=0
    22. If fso.FileExists(strExcludeFile) Then
    23. Set fex = fso.OpenTextFile(strExcludeFile, ForReading)
    24. Do While Not fex.AtEndOfStream
    25. maxExcludes=maxExcludes+1
    26. ReDim Preserve arrEx(maxExcludes)
    27. arrEx(maxExcludes) = fex.readline()
    28. Writelog arrEx(maxExcludes)
    29. Loop
    30. fex.close
    31. End If
    32. Writelog "----"
    33. 'Durchlaufe alle Unterverzeichnisse
    34. For Each folder In ofolder.subfolders
    35. KillfolderSub folder
    36. Next
    37. Writelog "---- Script beendet - " & Now()
    38. If Not boolcscript Then MsgBox "Script beendet - " & Now()
    39. '---
    40. 'ENDE
    41. '---
    42. Sub KillfolderSub(objFolder)
    43. 'On Error Resume Next
    44. strFolder = objFolder.Path
    45. ' vardatecreated = objFolder.datecreated
    46. 'Wenn Ordner in "Exclude"-Liste steht, nicht löschen!
    47. boolExclude = False
    48. For i=1 To maxExcludes
    49. If LCase(strFolder) = LCase(Trim(arrEx(i))) Then boolExclude = True
    50. Next
    51. If boolExclude Then
    52. Writelog "Ordner " & strFolder & " incl. Unterordner nicht gelöscht (Exclude-Regel!)"
    53. Else
    54. 'Durchlaufe alle Unterverzeichnisse
    55. For Each subfolder In objFolder.subfolders
    56. KillfolderSub subfolder
    57. Next
    58. 'Wenn Ordner vor mehr als x Tagen erstellt wurde...
    59. ' WScript.Echo vardatecreated & " - "& Date & " - "& lngDays
    60. ' If vardatecreated < (Date - lngDays) Then
    61. ' WScript.Echo "alt löschen"
    62. 'Alle Dateien im Ordner löschen
    63. For Each file In objFolder.Files
    64. vardatecreated = file.DateLastModified
    65. 'Script.Echo file & " - "&vardatecreated & " - "& Date & " - "& lngDays
    66. If vardatecreated < (Date - lngDays) Then
    67. Err.Clear
    68. strFile = file.Path
    69. fso.DeleteFile strFile, True
    70. If Err = 0 Then
    71. Writelog "Datei " & strFile & " gelöscht"
    72. Else
    73. Writelog "Datei " & strFile & " konnte nicht gelöscht werden! - Fehler " & Err & " (" & Err.Description & ")"
    74. End If
    75. Else
    76. Writelog "Datei " & strFile & " nicht gelöscht! - zu Neu" & vardatecreated
    77. End If
    78. Next
    79. ' End If
    80. End If
    81. On Error Goto 0
    82. End Sub
    83. '---
    84. 'Löschen leerer Ordner
    85. '---
    86. mko (strRootFolders)
    87. Sub mko (sfolder)
    88. Set fso = CreateObject("Scripting.FileSystemObject")
    89. Set fsofolder = fso.GetFolder(sFolder)
    90. For Each subfolder In fsofolder.SubFolders
    91. mko(subfolder.Path)
    92. Next
    93. If fsofolder.Files.Count = 0 And fsofolder.SubFolders.Count = 0 Then
    94. fsofolder.Delete vbTrue
    95. End If
    96. End Sub
    97. '---
    98. Sub Writelog(strMessage)
    99. flog.writeline strMessage
    100. If boolcscript Then WScript.echo strMessage
    101. End Sub

    Visual Basic-Quellcode

    1. ...
    2. ...
    3. For i = 0 To UBound(strRootFolders)
    4. Set ofolder = fso.GetFolder(strRootFolders(i))
    5. Set flog = fso.OpenTextFile(strLogFile, ForAppending, True)
    6. Writelog "---- Alte Ordner in " & strRootFolders(i) & " werden gelöscht! - " & Now()
    7. Writelog "Ausgeschlossene Verzeichnisse:"
    8. ...
    9. ...
    10. Next
    11. ...
    12. ...
    hmmmm leider gleiches problem

    Microsoft VBScript runtime error (30, 1) : Type mismatch: 'fso.GetFolder'

    Visual Basic-Quellcode

    1. ''-Konstanten----------------------------------------------
    2. Const ForReading = 1, ForWriting = 2, ForAppending = 8
    3. '-Array Variablen die zu überprüfenden Ordner getrennt mit ; angeben------
    4. strRootFolder = "O:\vbs\del; O:\vbs\del - Copy;"
    5. 'CompName
    6. 'strComputer =strRootFolder
    7. '-Variablen-----------------------------------------------
    8. strRootFolders = split(strRootFolder, ";")
    9. strLogFile = "O:\vbs\Rekursiv_loeschen\log.txt" '-Ablage der Log Datei
    10. strExcludeFile = "O:\vbs\Rekursiv_loeschen\KillfolderExclude.txt" ' In diesem Textfile bitte die zu Exclusion Freigegebenen Verzeichnisse eintragen
    11. lngDays = 1
    12. lngRetries = 3 'Anzahl Versuche, wenn Ordner-löschen fehlschlägt
    13. lngRetSleepTime = 1000 'Wartezeit nach Fehlversuch in ms
    14. '---
    15. 'Wenn Statusmeldungen in DOS-Box gewünscht, Script mittels "cscript.exe KillOldFolders.vbs" starten!
    16. If LCase (Right (WScript.FullName, 11)) <> "cscript.exe" Then boolcsript = False Else boolcscript=True
    17. Set fso = CreateObject("Scripting.FileSystemObject")
    18. For i = 0 To UBound(strRootFolders)
    19. Set ofolder = fso.GetFolder(strRootFolders)
    20. Set flog = fso.OpenTextFile(strLogFile, ForAppending, True)
    21. Writelog "---- Alte Ordner in " & strRootFolders & " werden gelöscht! - " & Now()
    22. Writelog "Ausgeschlossene Verzeichnisse:"
    23. Next
    24. Dim arrEx()
    25. maxExcludes=0
    26. If fso.FileExists(strExcludeFile) Then
    27. Set fex = fso.OpenTextFile(strExcludeFile, ForReading)
    28. Do While Not fex.AtEndOfStream
    29. maxExcludes=maxExcludes+1
    30. ReDim Preserve arrEx(maxExcludes)
    31. arrEx(maxExcludes) = fex.readline()
    32. Writelog arrEx(maxExcludes)
    33. Loop
    34. fex.close
    35. End If
    36. Writelog "----"
    37. 'Durchlaufe alle Unterverzeichnisse
    38. For Each folder In ofolder.subfolders
    39. KillfolderSub folder
    40. Next
    41. Writelog "---- Script beendet - " & Now()
    42. if not boolcscript then MsgBox "Script beendet - " & Now()
    43. '---
    44. 'ENDE
    45. '---
    46. Sub KillfolderSub(objFolder)
    47. 'On Error Resume Next
    48. strFolder = objFolder.Path
    49. ' vardatecreated = objFolder.datecreated
    50. 'Wenn Ordner in "Exclude"-Liste steht, nicht löschen!
    51. boolExclude = False
    52. For i=1 To maxExcludes
    53. if lcase(strFolder) = lcase(trim(arrEx(i))) then boolExclude = True
    54. Next
    55. If boolExclude Then
    56. Writelog "Ordner " & strFolder & " incl. Unterordner nicht gelöscht (Exclude-Regel!)"
    57. Else
    58. 'Durchlaufe alle Unterverzeichnisse
    59. For Each subfolder In objFolder.subfolders
    60. KillfolderSub subfolder
    61. Next
    62. 'Wenn Ordner vor mehr als x Tagen erstellt wurde...
    63. ' WScript.Echo vardatecreated & " - "& Date & " - "& lngDays
    64. ' If vardatecreated < (Date - lngDays) Then
    65. ' WScript.Echo "alt löschen"
    66. 'Alle Dateien im Ordner löschen
    67. For Each file In objFolder.Files
    68. vardatecreated = file.DateLastModified
    69. 'Script.Echo file & " - "&vardatecreated & " - "& Date & " - "& lngDays
    70. If vardatecreated < (Date - lngDays) Then
    71. Err.Clear
    72. strFile = file.Path
    73. fso.DeleteFile strFile, True
    74. If Err = 0 Then
    75. Writelog "Datei " & strFile & " gelöscht"
    76. Else
    77. Writelog "Datei " & strFile & " konnte nicht gelöscht werden! - Fehler " & Err & " (" & Err.Description & ")"
    78. End If
    79. Else
    80. Writelog "Datei " & strFile & " nicht gelöscht! - zu Neu" & vardatecreated
    81. End If
    82. Next
    83. ' End If
    84. End If
    85. On Error Goto 0
    86. End Sub
    87. '---
    88. 'Löschen leerer Ordner
    89. '---
    90. mko (strRootFolders)
    91. Sub mko (sfolder)
    92. Set fso = CreateObject("Scripting.FileSystemObject")
    93. Set fsofolder = fso.GetFolder(sFolder)
    94. For Each subfolder In fsofolder.SubFolders
    95. mko(subfolder.Path)
    96. Next
    97. If fsofolder.Files.Count = 0 And fsofolder.SubFolders.Count = 0 Then
    98. fsofolder.Delete vbTrue
    99. End If
    100. End Sub
    101. '---
    102. Sub Writelog(strMessage)
    103. flog.writeline strMessage
    104. if boolcscript then WScript.echo strMessage
    105. End Sub


    Ich bin langsam am zweifeln ob ich zu blöde bin ?(
    danke für eure hilfen
    Ihr seid klasse