Unterordner verschieben per WSH

Dieses Thema Unterordner verschieben per WSH im Forum "Webentwicklung, Hosting & Programmierung" wurde erstellt von Michael[Gast], 21. Juli 2005.

Thema: Unterordner verschieben per WSH Servus! Hab da ein kleines Problem... ich hab hier einen Ordner Backup, in dem ich meine Outlook.pst regelmäßig...

  1. Servus!

    Hab da ein kleines Problem... ich hab hier einen Ordner Backup, in dem ich meine Outlook.pst regelmäßig sichere. Dazu wird automatisch ein Ordner erstellt, welcher das aktuelle Datum enthält(sprich, Ordnerstruktur entspricht \Backup\2005-07-20\outlook.pst). Jetzt will ich per Windows Skript sämtliche Unterordner in ein anderes Verzeichnis verschieben(BackupOld), sobald der Ordner eine Gesamtgröße von 4 - 4,4 Gigabyte erreicht hat, um diese dann anschließend auf DVD zu brennen. Hab hier im Forum auch schon gesucht und nichts dazu gefunden, wie man eben nur diese UNTERORDNER verschiebt. Ich könnte natürlich rein theoretisch den kompletten Ordner Backup verschieben und gleichzeitig umbenennen und danach einen neuen Ordner Backup erstellen... nur ist hier das Problem: Der Ordner Backup ist im Netzwerk freigegeben, insofern wird das etwas schwierig ;-)

    Hier mal mein bisheriger Quelltext, den ich in diesem Forum gefunden und etwas modifiziert habe:

    'Dim Ordner, Datei, Quelle, unterordner, groesse, subfolder
    'Set Ordner = objFso.GetFolder(x:\Backup\)

    'For Each subfolder in Ordner.Files
    -> unterordner = Datei.Name
    -> groesse = quelle.size
    -> Set subfolder = objFso.GetFile(x:\Backup\ & unterordner)
    -> If groesse > 4294967296 and groesse < 4724464025 Then
    objFso.MoveFolder subfolder, x:\BackupOld\ & unterordner
    -> End If
    'Next

    Werd da allerdings irgendwie nicht schlau draus, und bin auch noch nicht wirklich bewandert auf diesem Gebiet ;-) Weiß jemand vielleicht ne Lösung? Ich will lediglich die Unterordner verschieben, nicht das Stammverzeichnis... und es muss per .vbs gemacht werden, wegen Anmeldeskript...
     
  2. Ersetze For Each subfolder in Ordner.Files durch For Each subfolder in Ordner.SubFolders. Du möchtest ja die Unterordner und nicht die Dateien haben.
    Die Methoden .Name und .Size mußt Du in der Schleife direkt auf subfolder anwenden. subfolder ist ein Ordner aus dem Ordner.Files-Array, so hast Du es hinter For Each festgelegt.
    Außerdem mußt Du zuerst mit CreateObject das Filesystem-Objekt laden!
    Lade Dir die deutsche Dokumentation des Wsh herunter,
    (http://download.microsoft.com/download/winscript56/Install/5.6/W98NT42KMe/DE/scr56de.exe) und lese Dir das Kapitel Script-Laufzeit/FileSystemObject durch.
     
  3. Hab Dank, funktioniert! Zur Vollständigkeit, hier der funktionierende Quelltext:

    Option Explicit

    Dim WshShell, Fso ->Shell, File System Objekt
    Dim Ordner, Quelle, unterordner, groesse, subfolder

    Set WshShell = CreateObject(WScript.Shell)
    Set Fso = CreateObject(Scripting.FileSystemObject)

    'Quell-Ordner, dessen Unterordner gesichert werden sollen
    Set Ordner = Fso.GetFolder(x:\Quelle\)

    groesse = Ordner.size

    'Falls sämtliche Unterordner zwischen 4 und 4,4 GB erreicht haben,
    'werden sie in den Ziel-Ordner verschoben
    If groesse > 4294967296 and groesse < 4724464025 Then
    For Each subfolder in Ordner.SubFolders
    Set subfolder = Fso.GetFolder(x:\Quelle\ & subfolder.Name)
    Fso.MoveFolder subfolder, x:\Ziel\ & subfolder.Name
    Next
    End If

    'Falls die Daten zu groß sind, um auf eine DVD gebrannt zu werden, werden die Administratoren benachrichtigt
    If groesse > 4724464025 Then
    WshShell.exec(net send [user] Der Ordner ist zu groß fuer eine DVD)
    End If
     
  4. Sieht gut aus! :) Allerdings könnte man die Zeile Set subfolder = Fso.GetFolder(x:\Quelle\ & subfolder.Name) ersatzlos streichen, da subfolder so bereits einen String zurückgibt, der den Namen des Ordners mit vollem Pfad zurückgibt.
    D.h. subfolder ist identisch mit x:\Quelle\&subfolder.Name!
    Aber man kann es auch ruhig so lassen. Ich wollte es nur des Verständnisses wegen gesagt haben.
     
Die Seite wird geladen...

Unterordner verschieben per WSH - Ähnliche Themen

Forum Datum
Unterordner automatisch anzeigen Windows 7 Forum 2. Dez. 2014
Vista Windows Mail: listet beim Starten sämtliche Ordner und Unterordner auf !!! Windows Vista Forum 17. Apr. 2014
Unterordner im Explorer mit Größe anzeigen Windows 7 Forum 2. Feb. 2012
Explorer.exe Win7 64 bit Ulti. zeigt keine Unterordner mehr an ?! Windows XP Forum 2. Dez. 2011
Unterordner auf externer Festplatte verschwunden Windows XP Forum 21. Nov. 2011