PDA

Vollständige Version anzeigen : Dateien per vbs kopieren wie mit xcopy


Woatze
25.01.2006, 14:15
Hallo!

Hab ein kleines Problem: Es soll bei der Anmeldung in einer Win2003-Domäne geprüft werden, ob auf einem Netzlaufwerk neuere Dateien vorhanden sind als auf dem Rechner selbst. Die liegen sagen wir mal auf \\server\Daten und auf dem Rechner D:\Daten und heißen Datei1, Datei2 und Datei3.
Mit xcopy in ein Startscript eingebunden, das per GPO zugewiesen wird, wär das ja ganz einfach:
xcopy \\server\daten\Datei1 D:\Daten\Datei1 /D /U /Y
xcopy \\server\daten\Datei2 D:\Daten\Datei2 /D /U /Y
xcopy \\server\daten\Datei3 D:\Daten\Datei3 /D /U /Y
, wobei der Parameter /D angibt, dass nur neuere Dateien ersetzt werden sollen, /U besagt, dass nur Dateien, die auch schon vorhanden sind, kopiert werden sollen und /Y unterdrückt die Aufforderung zur Bestätigung, dass die Datei überschrieben werden soll. Also muss auch kein User irgendwas bestätigen und kriegt auch nix davon mit.

Problem ist jetzt, dass in der Domäne keine cmd oder bat ausgeführt werden bei der Anmeldung eines normalen Users, nur bei Adminanmeldung. Nur per vbs würd es gehen. Da ich in vbs noch gar nicht bewandert bin, frag ich jetzt euch mal:
Kann mir jemand helfen, dieses mit xcopy doch sehr einfach zu erledigende Problem in vbs umzumünzen?

Vielen Dank schon mal,
Woatze

~~~dexter~~~
26.01.2006, 18:07
@Woatze
So sollte es funktionieren:


Option Explicit
Sub MyCopy(Quellpfad, Zielpfad)
Dim FSO : Set fso = CreateObject("Scripting.FileSystemObject")
Dim Quelle : Set Quelle = FSO.GetFile(Quellpfad)
Dim Ziel : Set Ziel = FSO.GetFile(Zielpfad)

If Quelle.DateLastModified > Ziel.DateLastModified Then
FSO.CopyFile Quelle, Ziel, True
End If
End Sub

MyCopy("\\server\daten\Datei1.txt", "D:\Daten\Datei1.txt")
MyCopy("\\server\daten\Datei2.txt", "D:\Daten\Datei2.txt")
MyCopy("\\server\daten\Datei3.txt", "D:\Daten\Datei3.txt")

~~~Dexter~~~

r_mori
13.02.2008, 16:52
Hallo zusammen
Ich suchte nach einem Script, und habe das in diesem Beitrag gefunden. Würde genau meinen Bedürfnissen entsprechen. Es funktioniert aber nicht.
Ich kriege folgende Meldung:
Beim Aufrufen einer Unterroutine dürfen keine Klammern verwendet werden.

Kann mir da jemand weiterhelfen.

Vielen Dank.

mori

rayek
15.02.2008, 12:21
hallöchen,
ich hab zwar nur grob drübergelesen, aber ich glaube, der compeiler hätte gern sowas:

MyCopy "\\server\daten\Datei1.txt", "D:\Daten\Datei1.txt"

ebend - wie er schon sacht - keine klammern! :)
wenn du aber unbedingt auf klammern beharrst, kannst du via

Call MyCopy("\\server\daten\Datei1.txt", "D:\Daten\Datei1.txt")

die klammerung behalten...
;)
liebe grüsse,
rayek