Ordnersynchronisation via VBScript
Guten Morgen zusammen!
Ich habe drei Verzeichnisse, die ich synchronisieren, bzw. aufteilen muss.
Quellverzeichnis "C:\data\"
- enthält diverse Ordner mit Bezeichnung "[Jahr]\90019xxx" und "[Jahr]\24xxx"
Zielverzeichnis1 "X:\data1\"
- soll enthalten "[Jahr]\90019xx"
Zielverzeichnis2 "X:\data2\"
- soll enthalten "[Jahr]\24xxx"
Im Quellverzeichnis werden von einem Programm diverse Daten abgelegt in der angegebenen Struktur "Jahreszahl\Ordnername\Daten"
Es werden aber auch leere Ordner angelegt.
Ziel ist es, die Ordner mit 90019 beginnend in Zielverzeichnis1 und die Ordner beginnend mit 24 in Zielverzeichnis2 zu synchronisieren/aktualisieren.
Die Verzeichnisse und Daten aus dem Quellverzeichnis können in die Zielverzeichnisse verschoben werden.
Es wird vorkommen, dass identische Ordner im Quellverzeichnis erstellt werden, dann sind die Daten ebenfalls ins entsprechende Zielverzeichnis zu verschieben, bestehende Daten mit gleichem Namen können überschrieben werden.
Warum vbs und kein "normales" Sync-Tool?
Das Zielverzeichnis ist keine normales Netzlaufwerk, d.h. ein normales Verschieben funktioniert nicht! Das ist auch der Grund, warum das Programm die Daten nicht direkt im Zielverzeichnis ablegen kann.
Daher kann ich leider auch kein einfaches Batch-Script nehmen, das hätte ich so hinbekommen...
Ich wette das Script ist einfacher, als es meine Erklärung ist, aber ich steh in vielen Fällen mit vbs auf dem Kriegsfuss und bräuchte Eure Hilfe, Tipps etc.
Vielen vielen Dank schon einmal im Voraus.
Schöne Grüße
Ich habe drei Verzeichnisse, die ich synchronisieren, bzw. aufteilen muss.
Quellverzeichnis "C:\data\"
- enthält diverse Ordner mit Bezeichnung "[Jahr]\90019xxx" und "[Jahr]\24xxx"
Zielverzeichnis1 "X:\data1\"
- soll enthalten "[Jahr]\90019xx"
Zielverzeichnis2 "X:\data2\"
- soll enthalten "[Jahr]\24xxx"
Im Quellverzeichnis werden von einem Programm diverse Daten abgelegt in der angegebenen Struktur "Jahreszahl\Ordnername\Daten"
Es werden aber auch leere Ordner angelegt.
Ziel ist es, die Ordner mit 90019 beginnend in Zielverzeichnis1 und die Ordner beginnend mit 24 in Zielverzeichnis2 zu synchronisieren/aktualisieren.
Die Verzeichnisse und Daten aus dem Quellverzeichnis können in die Zielverzeichnisse verschoben werden.
Es wird vorkommen, dass identische Ordner im Quellverzeichnis erstellt werden, dann sind die Daten ebenfalls ins entsprechende Zielverzeichnis zu verschieben, bestehende Daten mit gleichem Namen können überschrieben werden.
Warum vbs und kein "normales" Sync-Tool?
Das Zielverzeichnis ist keine normales Netzlaufwerk, d.h. ein normales Verschieben funktioniert nicht! Das ist auch der Grund, warum das Programm die Daten nicht direkt im Zielverzeichnis ablegen kann.
Daher kann ich leider auch kein einfaches Batch-Script nehmen, das hätte ich so hinbekommen...
Ich wette das Script ist einfacher, als es meine Erklärung ist, aber ich steh in vielen Fällen mit vbs auf dem Kriegsfuss und bräuchte Eure Hilfe, Tipps etc.
Vielen vielen Dank schon einmal im Voraus.
Schöne Grüße
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 254839
Url: https://administrator.de/contentid/254839
Ausgedruckt am: 22.11.2024 um 20:11 Uhr
9 Kommentare
Neuester Kommentar
Moin,
Gruß jodel32
Warum vbs und kein "normales" Sync-Tool?
Das Zielverzeichnis ist keine normales Netzlaufwerk, d.h. ein normales Verschieben funktioniert nicht!
hää?? wie sollen wir das verstehen ? wenn sich die Files im Explorer oder in der Shell nicht verschieben oder kopieren lassen kann VBS das auch nicht. Werde mal konkret um was es sich für ein Laufwerk handelt ! robocopy macht dir das problemlos automatisch egal wohin.Das Zielverzeichnis ist keine normales Netzlaufwerk, d.h. ein normales Verschieben funktioniert nicht!
Gruß jodel32
Hi,
klar ist das Ziellaufwerk kein "normales". Hat ja auch nen X......
So funktioniert das hier nicht! Musst schon sagen um was es sich dabei handelt: UNC Pfad, FTP, Memory vom Smartphone?
Schreib so detailiert was los ist. Kennwörter, Domain, etc. will hier eh keiner Wissen. Sollte doch möglich sein, eine relativ vollständige Frage zu formulieren.
mfg Crusher
klar ist das Ziellaufwerk kein "normales". Hat ja auch nen X......
So funktioniert das hier nicht! Musst schon sagen um was es sich dabei handelt: UNC Pfad, FTP, Memory vom Smartphone?
Schreib so detailiert was los ist. Kennwörter, Domain, etc. will hier eh keiner Wissen. Sollte doch möglich sein, eine relativ vollständige Frage zu formulieren.
mfg Crusher
Hab grad mal die Anleitung beri denen ürberflorgen. Als Client-Server Anbindung wird dort normales mappen via Explorer beschrieben - vgl. net use.
net use z: \\server\windream /user:windream xyz
Funktioniert sowas? Oder wie ist das Laufwerk bei dir gempapped? Wenn Du UNC Pfad mappen kannst, kannst du auch jedes beliebige Skript nehmen. Solange das Lw verbunden ist, sollte es dann doch keine Eisnchränkungen geben.
net use z: \\server\windream /user:windream xyz
Funktioniert sowas? Oder wie ist das Laufwerk bei dir gempapped? Wenn Du UNC Pfad mappen kannst, kannst du auch jedes beliebige Skript nehmen. Solange das Lw verbunden ist, sollte es dann doch keine Eisnchränkungen geben.
Hallo DeeJayBee,
Grüße Uwe
Ich brauche nur den Teil wie beschrieben.
Kopiere/Verschiebe aus Quelle alle Ordner mit 90019xxx nach Ziel1 und alle mit 24xxx nach Ziel2
Kopiere/Verschiebe aus Quelle alle Ordner mit 90019xxx nach Ziel1 und alle mit 24xxx nach Ziel2
Const SOURCEFOLDER = "C:\data"
Const TARGETFOLDER = "X:\data1"
Const TARGETFOLDER2 = "X:\data2"
Set fso = CreateObject("Scripting.Filesystemobject")
Set regex = CreateObject("vbscript.regexp")
regex.Pattern = "^\d{4}$"
If Not fso.FolderExists(TARGETFOLDER) Then fso.CreateFolder(TARGETFOLDER)
If Not fso.FolderExists(TARGETFOLDER2) Then fso.CreateFolder(TARGETFOLDER2)
For Each folder In fso.GetFolder(SOURCEFOLDER).SubFolders
If regex.Test(folder.Name) Then
target1 = TARGETFOLDER & "\" & folder.Name
target2 = TARGETFOLDER2 & "\" & folder.Name
If Not fso.FolderExists(target1) Then fso.CreateFolder(target1)
If Not fso.FolderExists(target2) Then fso.CreateFolder(target2)
On Error Resume Next
fso.CopyFolder folder.Path & "\90019*",target1,True
fso.CopyFolder folder.Path & "\24*",target2,True
fso.DeleteFolder folder.Path & "\90019*"
fso.DeleteFolder folder.Path & "\24*"
End If
Next
MsgBox "Finished"
Set fso = Nothing
Set regex = Nothing