ollimuc
Goto Top

Schleife in VBS wird ignoriert

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. :/


Function Move (Quellpfad, Zielpfad)

Set FSO = CreateObject("Scripting.FileSystemObject")   
Set Quelle = FSO.GetFolder("C:\Beispielpfad\")  
Set Ziel = FSO.GetFolder("C\Beispielergebnispfad\")  


If FSO.GetFolder(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  
  
   else

   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  
  
end if

End Function
Hoffe sehr auf einen Helfer. face-smile

Grüße
Oliver

---
[Edit Biber] Codeformatierung und verschoben von "Visual Studio" nach "Batches from Hell" [/Edit]

Content-ID: 301066

Url: https://administrator.de/contentid/301066

Ausgedruckt am: 16.11.2024 um 01:11 Uhr

Biber
Biber 06.04.2016 aktualisiert um 15:11:37 Uhr
Goto Top
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
emeriks
Lösung emeriks 06.04.2016 um 15:20:03 Uhr
Goto Top
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.
OlliMuc
OlliMuc 06.04.2016 aktualisiert um 16:48:15 Uhr
Goto Top
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.