Schleife in VBS wird ignoriert

Mitglied: OlliMuc

OlliMuc (Level 1)

06.04.2016, aktualisiert 14:48 Uhr, 1264 Aufrufe, 3 Kommentare

Hallo zusammen,

ich abe ein Problem mit folgendem VBS-Script - bin Neuling und wäre für Hilfe bei der Fehlersuche sehr dankbar.

Der 1. Kopy-Befehl soll nur ausgeführt werrden, wenn der Ordner im Quellpfad Daten enthält - ansonsten der ander Kopy-Befehl (der Ordner also leer ist). Ich bekomme keine Fehlermeldungen - die Schleife wird einfach nicht ausgefürt, in keiner von beiden Varianten. Hab schon seit 3 Tagen rumprobiert und sehe den Wald vor lauter Bäumen nimmer. :/


Hoffe sehr auf einen Helfer. :) face-smile

Grüße
Oliver

---
[Edit Biber] Codeformatierung und verschoben von "Visual Studio" nach "Batches from Hell" [/Edit]
3 Kommentare
Mitglied: Biber
06.04.2016, aktualisiert um 15:11 Uhr
Moin olliMuc,

dann fang ich mal an, die Profis sind noch zu Tisch...

Unter der Annahme, dass du als VBS-Neuling auch Tipps hören willst:

a) Es ist IMHO für deinen Zweck ziemlich sinnfrei, eine Function namens Move() zu definieren, wenn sie doch nirgends aufgerufen wird.
Kommentiere einfach die Zeilen Function ... und End Function aus. Oder lösch sie.
BTW: eine Function sollte möglichst nicht heissen wie Syntaxelemente oder reservierte Worte der Programmiersprache.
Move() ist nicht sinnvoll als Function-Name.
b) Variablen definieren ist fein. Es sollte aber erkennbar sein, ob eine Variable ein String oder ein Object ist. Die Variablennamen Quellpfad und Zielpfad in ihrer verwendeten Form führen fast zwangsläufig zu Programmierfehlern.
c) denn da Quelle bereits ein Object ist und eigentlich oFolderQuelle heissen sollte, müsste in Zeile 08 stehen:
If oFolderQuelle.Files.Count > 0 Then
d) in Zeile 5 ist vermutlich auch ein Tippfehler:
jezz': Set Ziel = FSO.GetFolder("C\Beispielergebnispfad\")
IMHO: Set oFolderZiel = FSO.GetFolder("C:\Beispielergebnispfad\")

Erstmal als Anschub-Programmierhilfe.

Grüße
Biber
Mitglied: emeriks
LÖSUNG 06.04.2016 um 15:20 Uhr
Hi,
ich sehe da mehrere Fehler

Set Ziel = FSO.GetFolder("C\Beispielergebnispfad\")
":" fehlt

If FSO.GetFolder(Quelle).Files.Count > 0 Then
If Quelle.Files.Count > 0 Then

FSO.copyFile "G:\TEAM\BE\BE-B\Taegliches LG-Monitoring_Sued\System\Datenbasis\Temp\Umbenennen_Zwischenschritt\Tempspeicher\" & "\*.*", "G:\TEAM\BE\BE-B\Taegliches LG-Monitoring_Sued\System\Datenbasis\" & "\", true
"...eicher\" & "\*.*" ---> ergibt "....eicher\\*.*" --> Doppel "\"

FSO.copyFile "G:\TEAM\BE\BE-B\Taegliches LG-Monitoring_Sued\System\Datenbasis\Temp\Umbenennen_Zwischenschritt\" & "\*.*", "G:\TEAM\BE\BE-B\Taegliches LG-Monitoring_Sued\System\Datenbasis\" & "\", true
Wieder Doppel "\"


E.
Mitglied: OlliMuc
06.04.2016, aktualisiert um 16:48 Uhr
Vielen Dank Biber und emeriks,

es läuft - eure Hinweise waren genau richtig und ich hab was gelernt. :) face-smile

Grüße
Olli

Ich schließe damit diese Frage als gelöst.