TIA VBS-Skript Verzeichnis mit Jahreszahl erstellen

Zuviel Werbung?
-> Hier kostenlos registrieren
Steht in der VBA-Hilfe auch, warum "Dir" nicht rekursiv aufgerufen werden soll?
Da kann man eigentlich auch selber drauf kommen. Die Dir-Methode arbeitet in zwei Schritten: zuerst wird der Dir-Methode das Suchmuster übergeben (da legt die Dir-Methode eine neue Liste der passenden Fundstellen an) und danach werden mit Dir() die einzelnen Einträge der Liste abgerufen (muß nicht komplett abgerufen werden). Wenn man nun der Dir-Methode während der Listen-Abruf-Phase ein neues Suchmuster übergibt, dann wird die evtl. bereits vorhandene Liste gelöscht und eine neue Liste angelegt und das Suchmuster durch das neue Suchmuster überschrieben. Will man nun zu der vorherigen Listen-Abruf-Phase zurückkehren, dann existiert diese Liste nicht mehr, und auch das vorherige Suchmuster ist nicht mehr vorhanden.

PS: man kann gleichzeitig mit mehreren sich nicht gegenseitig störenden Dir-Instanzen arbeiten, indem man mehrere Instanzen des FileSystem controls anlegt ( Set fso_2 = CreateObject("FileCtl.FileSystem") )

Harald
 
Zuletzt bearbeitet:
Leider ist jetzt mein TP1200 im Büro irgendwie im TransferModus hängen geblieben und ich kann es erst Montag wieder neu starten.
Das Skript (hier nur der Teil wo kopiert werden soll) habe ich so angepasst:

Code:
            Result = fso.Dir("\Storage Card SD\Sintern\Archiv\2022\*.csv")
         Quelle = "\Storage Card SD\Sintern\Archiv\2022" & Result
           Ziel = "\Storage Card USB\" & Result
            If Result = "" Then
         ShowSystemAlarm "No files found"
                        Else
                           fso.FileCopy Quelle,Ziel
                           fso.SetAttr  Quelle, 0                       
                            For Index = 1 To 999
                                Result = fso.Dir()   
                                If Result = "" Then
                                    Exit For
                                Else
                                   Quelle = "\Storage Card SD\Sintern\Archiv\2022" & Result
                                     Ziel = "\Storage Card USB\" & Result
                                    fso.FileCopy Quelle,Ziel
                                    fso.SetAttr  Quelle, 0 
                                End If   
                            Next
                      ShowSystemAlarm "Transferring archives successfully"


Als Systemfehlermeldung (den genauen Text bringe ich gerade nicht mehr zusammen) kommt dann, das in der Zeile wo fso.FileCopy Quelle,Ziel steht, ein Syntaxfehler oder ein falscher Pfad angegeben wurde.
 
Zuletzt bearbeitet:
Code:
            Result = fso.Dir("\Storage Card SD\Sintern\Archiv\2022\*.csv")
         Quelle = "\Storage Card SD\Sintern\Archiv\2022" & Result
           Ziel = "\Storage Card USB\" & Result
Du hast zweimal die Befehlszeile "Quelle = "\Storage Card SD\Sintern\Archiv\2022" & Result"
Beide mal fehlt am Ende des Pfades nach dem "...\2022" ein Backslash: "Quelle = "\Storage Card SD\Sintern\Archiv\2022\" & Result"

Tipp: Laß Dir mal zum Test/Debug mit ShowSystemAlarm oder in eine interne HMI-Variable (SmartTag) in ein EA-Feld die Werte von Result und Quelle anzeigen, das wird sehr hilfreich zum Verständnis von Dir() sein.

Harald
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Einfacher wird es, wenn man die in der WinCE-"Eingabeaufforderung" vorhandenen Datei-Kopier-Befehle verwendet, z.B. ...
Wenn's denn nur so möglich sein sollte, warum nicht? Den ZielPfad vorbereiten kann man ja ggfs weiterhin im VBS. Das dürfte in VBS gut beherrschbar sein.
Man kann in der WinCE-"Eingabeaufforderung" auch Batch-Dateien (.bat) ausführen lassen (die man vorher auch dynamisch erzeugen kann) und hat dadurch viel mehr und einfachere Möglichkeiten als in VBS. Beispiel siehe hier: WinCE VBS GetHostname

Harald
 
Du hast zweimal die Befehlszeile "Quelle = "\Storage Card SD\Sintern\Archiv\2022" & Result"
Beide mal fehlt am Ende des Pfades nach dem "...\2022" ein Backslash: "Quelle = "\Storage Card SD\Sintern\Archiv\2022\" & Result"

Tipp: Laß Dir mal zum Test/Debug mit ShowSystemAlarm oder in eine interne HMI-Variable (SmartTag) in ein EA-Feld die Werte von Result und Quelle anzeigen, das wird sehr hilfreich zum Verständnis von Dir() sein.

Harald
Moin Harald,
den Backslash hatte ich in meinem letzten Versuch gelöscht, kann mich aber an die genaue Fehlermeldung als er vorhanden war nicht mehr erinnern.
Werde es morgen früh probieren und dann kann ich auch die genaue Fehlermeldung posten. Danke erst mal.
 
Nachdem der Montagmorgen Stress ein wenig abgeklungen ist, konnte ich mich wieder den Skripten zuwenden.
Es hat zwar etwas gedauert, jetzt macht erstmal alles was es soll, Dank eurer Hilfe.
Mein Problem mit den Unterverzeichnissen habe ich auf den "Bediener/Instandhalter/Qualitäter" verlagert, er muss jetzt eingeben welches Jahr + Monat er von der SD-Card auf den USB Stick sichern will.
Nochmals Danke an alle für die Unterstützung
 
Zurück
Oben