Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Ordnersynchronisation via VBScript

Frage Entwicklung VB for Applications

Mitglied: DeeJayBee

DeeJayBee (Level 1) - Jetzt verbinden

14.11.2014 um 10:16 Uhr, 1739 Aufrufe, 9 Kommentare

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
Mitglied: 114757
14.11.2014, aktualisiert um 18:30 Uhr
Moin,
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.

Gruß jodel32
Bitte warten ..
Mitglied: Crusher79
14.11.2014 um 18:56 Uhr
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.

Mit freundlichen Grüßen Crusher
Bitte warten ..
Mitglied: DeeJayBee
16.11.2014 um 22:25 Uhr
Hallo,

vielleicht habe ich mich unglücklich ausgedrückt...

Das Ziellaufwerk ist eine Art virtuelles Laufwerk. Genau genommen die Software Windream. Die Software benötigt für ein Script eine spezielle Anmeldung. Diese kann ich einbauen, ansonsten kann man das Laufwerk wie ein normales verwenden.
Die Dateien lassen sich per Explorer manuell verschieben. Per Shell nicht, da der Login fehlt. Per vbs läßt sich dies realisieren.

Aber abgesehen davon ist das für die Problematik vollkommen egal.
Ich suche nur nach einer Lösung für das Aufteilen und Verschieben von Dateien/Ordnern aus einem Quelllaufwerk in zwei Ziellaufwerke.
Und das ist doch eine relativ vollständige Frage, oder nicht? Ich habe nur versucht etwas Hintergrund zu ergänzen, warum ich das ausgerechnet in vbs benötige.

Wenn robocopy das auch kann, ich bin gespannt und würde es gerne testen, auf die Idee bin ich noch nicht gekommen.

Schöne Grüße
Bitte warten ..
Mitglied: Crusher79
16.11.2014 um 23:56 Uhr
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.
Bitte warten ..
Mitglied: DeeJayBee
17.11.2014 um 08:30 Uhr
Du hast da vollkommen Recht.
Und wie Du schon sagst, solange das Laufwerk verbunden ist... leider funktioniert es mit Batch nicht.
Ich kann zwar mit Batch drauf zugreifen, aber copy/xcopy funktioniert nicht. Über vbs geht das!

Aber mein Problem ist nicht das mappen, sondern das "umkopieren", das verteilen.
Bitte warten ..
Mitglied: Crusher79
17.11.2014 um 08:38 Uhr
Ok verstehe! Oder auch nicht...

Woher weisst Du das mit VBS? Hast du da schon was probiert?
Bitte warten ..
Mitglied: DeeJayBee
17.11.2014 um 08:49 Uhr
Ja,

ich habe ein Script von denen bekommen, wo auch die exakte Vorgehensweise anhand eines Beispiels mit Login, Speicherort überprüfen, Ordner anlegen, Datei erstellen, Datei sperren, Inhalt kopieren, Datei wieder freigeben beschrieben ist.
Wie gesagt, das kann ich selbst einbauen / nachtragen, ist für das Script also vollkommen irrelevant.

Ich brauche nur den Teil wie beschrieben.
Kopiere/Verschiebe aus Quelle alle Ordner mit 90019xxx nach Ziel1 und alle mit 24xxx nach Ziel2

Eine Datei, deren Namen mir bekannt ist, schaff ich gerade noch mit vbs selbst zu kopieren. Aber ein komplettes Verzeichnis so aufzutrennen,... da häng ich fest
Bitte warten ..
Mitglied: colinardo
LÖSUNG 19.11.2014, aktualisiert 27.11.2014
Hallo DeeJayBee,
Ich brauche nur den Teil wie beschrieben.
Kopiere/Verschiebe aus Quelle alle Ordner mit 90019xxx nach Ziel1 und alle mit 24xxx nach Ziel2
01.
Const SOURCEFOLDER = "C:\data" 
02.
Const TARGETFOLDER = "X:\data1" 
03.
Const TARGETFOLDER2 = "X:\data2" 
04.
Set fso = CreateObject("Scripting.Filesystemobject") 
05.
Set regex = CreateObject("vbscript.regexp") 
06.
regex.Pattern = "^\d{4}$" 
07.
 
08.
If Not fso.FolderExists(TARGETFOLDER) Then fso.CreateFolder(TARGETFOLDER) 
09.
If Not fso.FolderExists(TARGETFOLDER2) Then fso.CreateFolder(TARGETFOLDER2) 
10.
 
11.
For Each folder In fso.GetFolder(SOURCEFOLDER).SubFolders 
12.
	If regex.Test(folder.Name) Then 
13.
		target1 = TARGETFOLDER & "\" & folder.Name 
14.
		target2 = TARGETFOLDER2 & "\" & folder.Name 
15.
		If Not fso.FolderExists(target1) Then fso.CreateFolder(target1) 
16.
		If Not fso.FolderExists(target2) Then fso.CreateFolder(target2) 
17.
		On Error Resume Next 
18.
		fso.CopyFolder folder.Path & "\90019*",target1,True 
19.
		fso.CopyFolder folder.Path & "\24*",target2,True 
20.
		fso.DeleteFolder folder.Path & "\90019*" 
21.
		fso.DeleteFolder folder.Path & "\24*" 
22.
	End If 
23.
Next 
24.
MsgBox "Finished" 
25.
Set fso = Nothing 
26.
Set regex = Nothing
Grüße Uwe
Bitte warten ..
Mitglied: DeeJayBee
27.11.2014 um 08:55 Uhr
Perfekt. Vielen Dank!
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Entwicklung
gelöst Get ip from external txt file and use in vbscript (5)

Frage von thankusomuch zum Thema Entwicklung ...

VB for Applications
gelöst Vbscript bestimmte Zeile ungeachtet der Nummerierung löschen (4)

Frage von aletri zum Thema VB for Applications ...

Windows 7
Windows 7: Per VBScript Netzwerkdrucker ersetzen (1)

Frage von donnyS73lb zum Thema Windows 7 ...

Batch & Shell
gelöst VBscript - WMI - ServerAddress + ConnectionStatus (Windows 7) (10)

Frage von Highend01 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...