tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
4
ZUGRIFFE
2320
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Supe
    Supe Supe ist offline Mitglied Gold
    Registriert seit
    Dec 2003
    Ort
    Metropolis
    Beiträge
    113
    Hallo Leute!

    Meine Stärken liegen im Bereich Grafikbearbeitung und 3D, sicherlich nicht bei VBS und Scripting.
    Als "spezielle Sonderaufgabe" meines Chefs für unseren Dateiserver (Win2K3 R2, als Admin) habe ich nun die Löschung eines Verzeichnisses, egal welchen Inhalts (Unterordner, Dtaeien, schreibgeschützte Dateien) auf's Auge gedrückt bekommen.

    Ich habe nicht soviel Zeit für die Extrawürste meines Chefs neben meiner normalen Arbeit, deshalb hier meine Frage, wer mir schnell und kompetent ("Mach es so!") helfen kann. Ich kann jetzt nicht einen VBS-Kurs machen, weshalb mir RTFM-Antworten wenig weiter helfen.

    Augabenstellung: Jeden Nacht (Task-Planer) um 0.00 Uhr sollen alle Dateien und Ordner, Unterordner und Dateien darin im Stamm-Ordner D:\Allgemeine Ablage\Datentausch und D:\Allgemeine Ablage\Scandokumente ungefragt gelöscht werden. Egal ob mit Schreibschutz oder nicht.

    Nachdem ich mit DOS rumgefuhrwerkt habe, bin ich über Google auf ein VBS-Script gestoßen:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    
    Option Explicit
    dim fso, strPfad
     
    strPfad = "D:\Allgemeine Ablage\Datentausch"
     
    Set fso = CreateObject("Scripting.FileSystemObject")
     
    DeleteFiles strPfad
     
    fso.DeleteFolder ("D:\Allgemeine Ablage\Datentausch\*")
     
    Sub DeleteFiles(strFolder)
     dim oFolder, oFolders, oFiles, item
     
     On Error Resume Next
     
     Set oFolder = fso.GetFolder(strFolder)
     Set oFolders = oFolder.SubFolders
     Set oFiles = oFolder.Files
     
     For each item in oFolders
      DeleteFiles(item)
     Next
     
     For each item in oFiles
      ' um Schreibgeschützte Dateien zu löschen, True übergeben
      fso.DeleteFile item, True
     Next
    End Sub

    Das klappt soweit, aber sobald ich den zweiten Ordner hinzufüge ...

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    
    Option Explicit
    dim fso, strPfad
     
    strPfad = "D:\Allgemeine Ablage\Datentausch"
    [COLOR="Red"]strPfad = "D:\Allgemeine Ablage\Scandokumente"[/COLOR]
     
    Set fso = CreateObject("Scripting.FileSystemObject")
     
    DeleteFiles strPfad
     
    fso.DeleteFolder ("D:\Allgemeine Ablage\Datentausch\*")
    [COLOR="Red"]fso.DeleteFolder ("D:\Allgemeine Ablage\Scandokumente\*")[/COLOR]
     
    Sub DeleteFiles(strFolder)
     dim oFolder, oFolders, oFiles, item
     
     On Error Resume Next
     
     Set oFolder = fso.GetFolder(strFolder)
     Set oFolders = oFolder.SubFolders
     Set oFiles = oFolder.Files
     
     For each item in oFolders
      DeleteFiles(item)
     Next
     
     For each item in oFiles
      ' um Schreibgeschützte Dateien zu löschen, True übergeben
      fso.DeleteFile item, True
     Next
    End Sub


    ... werden unter Datentausch keinerlei Datein oder Ordner mehr gelöscht. Sicherlich mache ich da etwas falsch, aber so sehr ich mich diletanisch auch versuche, ich kriege das nicht hin. Für Euch VBS-Experten sicherlich Kleinkram.

    Wer kann mir hier weiterhelfen?
    Danke vorab für Eure Unterstützung!
    Supe
    Geändert von Supe (03.03.10 um 18:56 Uhr)
     
    www.strickwerk-productions.com (R)

  2. #2
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Code vb:
    1
    2
    
    strPfad = "D:\Allgemeine Ablage\Datentausch"
    strPfad = "D:\Allgemeine Ablage\Scandokumente"
    Du überscrheibst da den Pfad. Es wird nur der 2te genommen.
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  3. #3
    Avatar von Supe
    Supe Supe ist offline Mitglied Gold
    Registriert seit
    Dec 2003
    Ort
    Metropolis
    Beiträge
    113
    Okay, danke für den Hinweis. Da ich nicht sehr bewandert bin: Wie erreiche ich eine serielle Abarbeitung der Verzeichnisse; der Dateien darin?

    Danke für eine Antwort!
    Supe
     
    www.strickwerk-productions.com (R)

  4. #4
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Schreib deine Lösung in eine Funktion und rufe sie 2 mal auf....

    Code vb:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    
    Option Explicit
    dim fso, strPfad
     
    Set fso = CreateObject("Scripting.FileSystemObject")
     
    Call deleteFolder("D:\Allgemeine Ablage\Datentausch")
    Call deleteFolder("D:\Allgemeine Ablage\Scandokumente")
     
    Sub deleteFolder(strFolder)
      Call DeleteFiles(strFolder)
      Call fso.DeleteFolder(strFolder & "\*")
    End Sub
     
    Sub DeleteFiles(strFolder)
     dim oFolder, oFolders, oFiles, item
     
     On Error Resume Next
     
     Set oFolder = fso.GetFolder(strFolder)
     Set oFolders = oFolder.SubFolders
     Set oFiles = oFolder.Files
     
     For each item in oFolders
      DeleteFiles(item)
     Next
     
     For each item in oFiles
      ' um Schreibgeschützte Dateien zu löschen, True übergeben
      fso.DeleteFile item, True
     Next
    End Sub
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  5. #5
    Avatar von Supe
    Supe Supe ist offline Mitglied Gold
    Registriert seit
    Dec 2003
    Ort
    Metropolis
    Beiträge
    113
    Danke Dir, yaslaw! Das klappt jetzt 1a.
     
    www.strickwerk-productions.com (R)

Ähnliche Themen

  1. Ordner und dessen Unterordner löschen
    Von EddieG im Forum PHP
    Antworten: 15
    Letzter Beitrag: 23.10.09, 00:11
  2. Dateien in einem Ordner löschen
    Von Ozzy Ozborn im Forum C/C++
    Antworten: 7
    Letzter Beitrag: 19.05.08, 19:43
  3. Antworten: 13
    Letzter Beitrag: 03.09.07, 14:34
  4. Dateien u. Unterordner aus Ordner auslesen
    Von Blackvirus im Forum C/C++
    Antworten: 5
    Letzter Beitrag: 17.01.05, 21:10
  5. Ein Ordner mit allen Unterordner + Dateien kopieren
    Von zachaeus im Forum Visual Basic 6.0
    Antworten: 3
    Letzter Beitrag: 23.12.04, 16:27