VBS Ordner kopieren festhalten und zum löschen nutzen
Hallo,
Ich möchte von einem Lokalen Ordner alle Unterordner mit Dateien, die älter als eine Stunde sind auf ein Netzlaufwerk kopieren.
Beim Kopieren möchte ich das alle Ordner in eine Textdatei geschrieben werden.
Diese Datei soll dann zum Löschen der Ordner hergenommen werden.
Warum ich das so möchte ist, weil ich nicht mit Move arbeiten kann da das Ziel ein Netzlaufwerk ist.
Und die Textdatei soll als Sicherheit dienen das nur das gelöscht wird, was schon kopiert wurde.
Ich habe das ganze schon mit Robocopy ausprobiert aber Robocopy unterstützt keine Stunden nur Tage.
Kann mir einer von Euch helfen und sagen, wie beim Kopieren der Ordner gleichzeitig die Ordnernamen in eine Datei geschrieben werden können?
Und dann beim Löschen wieder einlesen.
Vielen Dank
Grüße Tommylik
Ich möchte von einem Lokalen Ordner alle Unterordner mit Dateien, die älter als eine Stunde sind auf ein Netzlaufwerk kopieren.
Beim Kopieren möchte ich das alle Ordner in eine Textdatei geschrieben werden.
Diese Datei soll dann zum Löschen der Ordner hergenommen werden.
Dim fso, folder, subfolder
Dim time
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder("D:\Bosch\")
time = 1 'Zeit in Stunden
for each subfolder in folder.subfolders
if (now()-subfolder.DateCreated)*24 > time Then
subfolder.copy("\\Datensicherung\")
end if
next
Set fso = nothing
Warum ich das so möchte ist, weil ich nicht mit Move arbeiten kann da das Ziel ein Netzlaufwerk ist.
Und die Textdatei soll als Sicherheit dienen das nur das gelöscht wird, was schon kopiert wurde.
Ich habe das ganze schon mit Robocopy ausprobiert aber Robocopy unterstützt keine Stunden nur Tage.
Kann mir einer von Euch helfen und sagen, wie beim Kopieren der Ordner gleichzeitig die Ordnernamen in eine Datei geschrieben werden können?
Und dann beim Löschen wieder einlesen.
Vielen Dank
Grüße Tommylik
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 1096843683
Url: https://administrator.de/contentid/1096843683
Ausgedruckt am: 17.11.2024 um 11:11 Uhr
4 Kommentare
Neuester Kommentar
Hallo Tommylik
Verstehe ich Deine Absicht richtig?
Anmerkung1:
Ist Deine Aussage die, dass "move" nicht mit der UNC Notation umgehen kann? Wenn ja, ist das falsch.
Anmerkung2:
"move" nimmt man nicht zum kopieren. Wie kommst du auf "move"?
docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/move-method-filesystemobject-object
Anmerkung3:
Dein Beispiel arbeitet mit dem FSO von WSH. D.h. Du musst nur die aktuelle Zeit mit dem Timestamp der gefundenen Dateien in den Unterverzeichnissen auf die Differenz grösser 60 Min prüfen. Versuch macht klug
www.script-example.com/themen/vbscript-Datum-und-Zeit-Funktionen-Syntax-Reference.php
Grüsse
Verstehe ich Deine Absicht richtig?
- NTFS Baumstruktur - aktuelles Verzeichnis
- Prüfe ob Dateien mit Timestamp "Zeit - 1h" vorhanden
- Diese mit der Baumstruktur auf ein NW-Laufwerk kopieren
- Kopierte Dateien loggen (Textfile)
- "Ordner" (!) der kopierten Dateien anhand des Logs löschen
"Warum ich das so möchte ist, weil ich nicht mit Move arbeiten kann da das Ziel ein Netzlaufwerk ist."
Anmerkung1:
Ist Deine Aussage die, dass "move" nicht mit der UNC Notation umgehen kann? Wenn ja, ist das falsch.
Anmerkung2:
"move" nimmt man nicht zum kopieren. Wie kommst du auf "move"?
docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/move-method-filesystemobject-object
Anmerkung3:
Dein Beispiel arbeitet mit dem FSO von WSH. D.h. Du musst nur die aktuelle Zeit mit dem Timestamp der gefundenen Dateien in den Unterverzeichnissen auf die Differenz grösser 60 Min prüfen. Versuch macht klug
www.script-example.com/themen/vbscript-Datum-und-Zeit-Funktionen-Syntax-Reference.php
Grüsse
Hallo Tommylik
IMO:
Falscher Ansatz. Du musst nicht vom "copy" befehl aus in die Datei schreiben.
Du musst lediglich den Namen des Objekt "Subfolder" im gleichen Durchgang in eine Datei schreiben.
Wenn in Deinem Problem "Copy" mit UNC funktioniert, aber "Move" nicht und es ist kein Berechtigungsproblem ("Write Access"), dann kopierst Du nur. Du willst ja ohnehin abschliessend alle (!!) Unterverzeichnisse löschen, wo eine Datei mit Deinen Kriterien gefunden wurde. Das Resultat ist identisch..
Grüsse
Peter
IMO:
Falscher Ansatz. Du musst nicht vom "copy" befehl aus in die Datei schreiben.
Du musst lediglich den Namen des Objekt "Subfolder" im gleichen Durchgang in eine Datei schreiben.
Wenn in Deinem Problem "Copy" mit UNC funktioniert, aber "Move" nicht und es ist kein Berechtigungsproblem ("Write Access"), dann kopierst Du nur. Du willst ja ohnehin abschliessend alle (!!) Unterverzeichnisse löschen, wo eine Datei mit Deinen Kriterien gefunden wurde. Das Resultat ist identisch..
Grüsse
Peter