TIA Sommerzeitumstellung für Comfort Panels TP mit S7-300 CPU

Zuviel Werbung?
-> Hier kostenlos registrieren
was sagt denn die systemmeldung?
siehe vorigen post von pn/dp

mach mal ein \ vor deiner quelle/ziel
UND WILDCARDS mag WinCE nicht

FSO.FileCopy "\flash\*.pdf", "\Storage Card SD\*.pdf"

und schau dir das mal an

hallo volker,

ich habe nun so probiert. Leider passiert nichts: ich bekomme kein PDF Ausdruck vom letzten Protokoll auf SD Karte kopiert .
Code:
FSO.FileCopy "\flash\*.pdf", "\Storage Card SD\*.pdf"

Im Beitrag hier wird im Skript die csv Datei kopiert auf USB und umbenannt.

Ich habe bereits im HMI Panel in PDF Settings Dateiname Regelungen definiert (String_YYYY_MM_DDHH_MM_SS). Laut Skript muss bei jedem Druck der letzte PDF Ausdruck auf SD Karte kopiert werden, Original Datei muss auf HMI lokal bleiben, nicht gelöscht werden.
Später statt SD karte müssen Protokolle auf Netzwerk PC kopiert werden und von dort im Drucker im Papierform ausgedruckt werden. Deshalb probiere ich jetzt mit Skript auf SD zu kopieren...
 
probier mal ob folgendes funktioniert. kein * verwenden

FSO.FileCopy "\flash\Quelldatei.pdf", "\Storage Card SD\Zieldatei.pdf"
Bemerkung am Rande. Es ist nicht gut wenn man Dateien in den internen Speicher speichert (\flash)
Die Quelldatei solltest du auf die Storage Card SD legen

wenn das geht schau dir den ersten Link von mir genauer an. Wie gesagt.... * (Wildcards) mag WCE nicht.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
probier mal ob folgendes funktioniert. kein * verwenden

FSO.FileCopy "\flash\Quelldatei.pdf", "\Storage Card SD\Zieldatei.pdf"
Bemerkung am Rande. Es ist nicht gut wenn man Dateien in den internen Speicher speichert (\flash)
Die Quelldatei solltest du auf die Storage Card SD legen

wenn das geht schau dir den ersten Link von mir genauer an. Wie gesagt.... * (Wildcards) mag WCE nicht.

Danke, volker. Mit "flash\" Speicher ist eine temporäre Lösung, weil ich momentan kein Netzwerk mit PC habe. Ich will erstmal laudendes Skript umsetzen.

Laut PDF-Settings von PDF Drucker im TP habe ich Dateiname bereits wie folgt definiert- String_YYYY_MM_DDHH_MM_SS.

Wie würde ich Dateiname im Skript definieren, weil man Dateiname nicht beinflussen kann. PDF Datei wird mit vorgegebener Relegung erst dann definiert, wenn ich Protokoll zu bestimmter Zeit ausdrucke (YYYY_MM_DDHH_MM_SS)
 
Zuletzt bearbeitet:
Ich habe folgenden Code probiert. Leider funktioniert weiterhin nicht.

Code:
'FSO.FileCopy "\flash\String_YYYY_MM_DDHH_MM_SS.pdf", "\Storage Card SD\.*pdf"

FSO.FileCopy "\flash\String_YYYY_MM_DDHH_MM_SS.pdf", "\Storage Card SD\String_YYYY_MM_DDHH_MM_SS.pdf"

MIt diesem Code, wenn man genau Dateiname eingibt, funktioniert Skript
Code:
FSO.FileCopy "\flash\Quelldatei.pdf", "\Storage Card SD\Zieldatei.pdf"

Wie kann ich den ganzen Ordner in SD kopieren, jedes Mal wenn neue PDF erstellt. Dabei müssen alte Dateien, die bereits auf SD sind, nicht überschrieben werden?
 
Zuletzt bearbeitet:
die Grunglagen wie du ein ganzes verzeichnis kopierst habe ich bereits verlinkt.

In dem Moment wo du das pdf erstellst kennst du doch den Dateinamen. Den kannst du doch auch direkt für das umkopieren verwenden anstatt immer alle Dateien zu kopieren.

WinCE überschreibt keine Dateien. Vor dem kopieren müssen diese gelöscht werden.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
die Grunglagen wie du ein ganzes verzeichnis kopierst habe ich bereits verlinkt.

In dem Moment wo du das pdf erstellst kennst du doch den Dateinamen. Den kannst du doch auch direkt für das umkopieren verwenden anstatt immer alle Dateien zu kopieren.

WinCE überschreibt keine Dateien. Vor dem kopieren müssen diese gelöscht werden.
Im Moment des Druck kenne die Regelung für Dateiname. Dateiname unterscheidet sich nach Uhrzeit. Die Dateiname Vergabe bei mir ist in PDF Settings eingestellt.

Wie gesagt dieser Code geht nicht, weil Skript mit festen Dateinamen geht.
Code:
FSO.FileCopy "\flash\String_YYYY_MM_DDHH_MM_SS.pdf", "\Storage Card SD\String_YYYY_MM_DDHH_MM_SS.pdf"
 
Im Moment des Druck kenne die Regelung für Dateiname. Dateiname unterscheidet sich nach Uhrzeit. Die Dateiname Vergabe bei mir ist in PDF Settings eingestellt.

Wie gesagt dieser Code geht nicht, weil Skript mit festen Dateinamen geht.
Code:
FSO.FileCopy "\flash\String_YYYY_MM_DDHH_MM_SS.pdf", "\Storage Card SD\String_YYYY_MM_DDHH_MM_SS.pdf"
Du musst die Platzhalter "YYYY_MM_DDHH_MM_SS" durch die aktuellen Bestandteile der Uhrzeit ersetzen, zu dem Zeitpunkt, wenn die PDF-Erzeugung ausgelöst wird. Also einen String mit der aktuellen Datum/Uhrzeit erstellen nach dem Format des Platzhalters.

Ich würde als Platzhalter/Format besser "YYYYMMDD_HHMMSS" verwenden. Die Erstellung des Datum/Uhrzeit-Strings geht dann so:
Code:
' aus der Systemzeit einen String in der Form "20991231_015959" erzeugen
Dim t, s
t = Now ' Systemzeit
s = DatePart("yyyy", t) & Right("0" & DatePart("m", t), 2) & Right("0" & DatePart("d", t), 2) & "_" _
  & Right("0" & DatePart("h", t), 2) & Right("0" & DatePart("n", t), 2) & Right("0" & DatePart("s", t), 2)
oder geht auch so
Code:
' aus der Systemzeit einen String in der Form "20991231_015959" erzeugen
Dim t, s
t = Now ' Systemzeit
s = Year(t) & Right("0" & Month(t), 2) & Right("0" & Day(t), 2) & "_" _
  & Right("0" & Hour(t), 2) & Right("0" & Minute(t), 2) & Right("0" & Second(t), 2)

Bei Deinem Platzhalter/Format "String_YYYY_MM_DDHH_MM_SS.pdf" kannst Du Dich an den obigen Code halten, musst aber die Unterstriche an anderen Stellen einfügen:
Code:
' aus der Systemzeit einen Dateiname in der Form "String_YYYY_MM_DDHH_MM_SS.pdf" erzeugen
Dim t, filename
t = Now ' Systemzeit
filename = "String_" & Year(t) & "_" & Right("0" & Month(t), 2) & "_" & Right("0" & Day(t), 2) _
  & Right("0" & Hour(t), 2) & "_" & Right("0" & Minute(t), 2) & "_" & Right("0" & Second(t), 2) & ".pdf"

FSO.FileCopy "\FLASH\" & filename, "\Storage Card SD\" & filename

Zwei Probleme:
  • Da zwischen dem Start der PDF-Erzeugung und der Abfrage der Uhrzeit (Now) ein kleines bisschen Zeit vergeht, kann es sporadisch vorkommen, daß der erwartete Dateiname und der tatsächliche Dateiname nicht übereinstimmen! Besser wäre es, nach dem Druck mit der Dir()-Methode festzustellen, welche Dateien im Druckordner vorhanden sind, und zu sortieren, welches der neueste Dateiname ist. Oder kann der Ordner vor dem Druck (soweit) geleert werden, so daß nach dem Druck nur eine einzige pdf-Datei (mit passendem Dateiname "String_*") vorhanden ist? Oder noch besser: kann der Druck eine pdf-Datei mit festem Dateiname ohne Zeitstempel erzeugen, und der Zeitstempel wird erst beim FileCopy zum Dateiname zugefügt?
  • Zwischen dem Start des Druckes und dem Kopieren der erzeugten Datei muß auch noch etwas Zeit gelassen werden, ehe die erzeugte Datei tatsächlich vollständig vorhanden ist. Die Druckfunktion gibt nicht zufällig irgendeine Fertig-Meldung?

Harald
 
Habt Ihr in der Firma noch einen SPS-Programmierer, der sich mal mit Deinem Problem beschäftigen kann? Bei dem was Du machen willst, reicht es nicht, wenn man in einem Forum diffus fragt und nur eine fertige Codezeile abtippen kann, sondern Du musst mitdenken und gezielt testen, wenn es nicht auf Anhieb funktioniert. Wir können nicht sehen, was bei Dir "nicht funktioniert". Damit wir gezielt helfen können, musst Du uns Dein Problem verständlich aufbereiten und aufgetretene (Fehler-)Meldungen mitteilen. Und auch mal Deinen ganzen Skript-Code zeigen, und nicht nur die eine Zeile, die irgendwie nicht funktioniert. Und lies auch mal richtig meine Hinweise und meine Links zum VBS-FAQ.

Wenn Du nicht durch logische Analyse drauf kommst, was warum nicht funktioniert, dann musst Du Test/Debug-Ausgaben in Deinen VBS-Code einbauen (z.B. mit ShowSystemAlarm), um zu sehen, was genau falsch läuft. Dazu brauchst Du eine Meldeanzeige für den Meldepuffer für Systemmeldungen, wie ich bereits in Beitrag #18 schrieb:
Und der Standard-Tipp: mache Dir in ein Bild eine Meldeanzeige zur Anzeige des Meldepuffers für Meldungen der Meldeklasse "System", damit Du die Runtimefehler-Meldungen sehen kannst. Da steht dann im Klartext drin, was dem VBS nicht gefällt.

Ich versuche jetzt nochmal zu erahnen, wie Dein Code wohl aussieht oder aussehen müsste, und baue Testausgaben mit ein an wichtigen Stellen, wo was schief gehen könnte.
Code:
Sub VBFunktion_2 ()

Dim FSO, t, filename, sourcefile, destfile

Set FSO = CreateObject("FileCtl.FileSystem")

'Dateiformat von "PDF Drucker ist "String_YYYYY_MM_DDHH_MM_SS.pdf"

t = Now ' Systemzeit
filename = "String_" & Year(t) & "_" & Right("0" & Month(t), 2) & "_" & Right("0" & Day(t), 2) _
  & Right("0" & Hour(t), 2) & "_" & Right("0" & Minute(t), 2) & "_" & Right("0" & Second(t), 2) & ".pdf"

sourcefile = "\FLASH\" & filename
destfile = "\Storage Card SD\" & filename

ShowSystemAlarm "VBFunktion_2: versuche FileCopy '" & sourcefile & "', '" & destfile & "'" '###Testausgabe: werden die Dateinamen korrekt gebildet?

If FSO.Dir(sourcefile) = "" Then  'If Not FileExist(sourcefile) Then
    ShowSystemAlarm "VBFunktion_2: Quelldatei '" & sourcefile & "' nicht gefunden."
    Exit sub
Else
    If FSO.Dir(destfile) <> "" Then fso.Kill destfile  'Zieldatei darf noch nicht existieren! ggf. vorher löschen
    FSO.FileCopy sourcefile, destfile
End If

ShowSystemAlarm "VBFunktion_2: FileCopy fertig"  '###Testausgabe: Skript ist bis zum Ende gekommen?

End Sub

Wenn das Skript erfolgreich die Datei kopiert hat, dann wurden 2 Systemmeldungen generiert ("versuche FileCopy..." + "... fertig")
(die Testausgaben können im fertigen Projekt entfernt oder auskommentiert werden)

Wenn es ein Problem gab, dann prüfe, ob die in der ersten Systemmeldung angegebenen Dateinamen korrekt sind und dem gewünschten Dateiname entsprechen. Wenn Systemmeldung "... Quelldatei ... nicht gefunden", dann überprüfen, ob der angegebene Dateiname korrekt ist. Vielleicht existiert die angegebene Datei einfach noch nicht, weil die Druckausgabe noch nicht fertig ist? Oder die Zeitangabe im Dateiname stimmt nicht? Prüfe mit dem Windows Explorer des Comfort Panels, ob überhaupt eine Datei in "\FLASH\" erzeugt wurde und wie die heißt. Vielleicht erzeugt die Druckausgabe einen anderen Dateiname als gedacht?

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Zwei Probleme:
  • Da zwischen dem Start der PDF-Erzeugung und der Abfrage der Uhrzeit (Now) ein kleines bisschen Zeit vergeht, kann es sporadisch vorkommen, daß der erwartete Dateiname und der tatsächliche Dateiname nicht übereinstimmen! Besser wäre es, nach dem Druck mit der Dir()-Methode festzustellen, welche Dateien im Druckordner vorhanden sind, und zu sortieren, welches der neueste Dateiname ist. Oder kann der Ordner vor dem Druck (soweit) geleert werden, so daß nach dem Druck nur eine einzige pdf-Datei (mit passendem Dateiname "String_*") vorhanden ist? Oder noch besser: kann der Druck eine pdf-Datei mit festem Dateiname ohne Zeitstempel erzeugen, und der Zeitstempel wird erst beim FileCopy zum Dateiname zugefügt?
  • Zwischen dem Start des Druckes und dem Kopieren der erzeugten Datei muß auch noch etwas Zeit gelassen werden, ehe die erzeugte Datei tatsächlich vollständig vorhanden ist. Die Druckfunktion gibt nicht zufällig irgendeine Fertig-Meldung?

Harald

Hallo Harald,

ich habe laufenden Skript dank deinen Tipps und volker. Ich habe bei PDF Namensgebung mit PDF Printer komplett von Datum Format verzichtet, stattdessen einfach string Format genommmen mit Dateiname Print.pdf. Wenn Original Print.pdf kopiert wird, wird Datei unbennant auf "Print und filename (mit t Systemzeit Now ) vom deinem Eintrag hier.

Namensformat der Datei ist: Print_YYYYMMDD_HHMMSS.pdf
Beispiel: Print_20230615_123015.pdf


Mein VB Skript kopiert Print.pdf auf Netzwerk PC. Skript prüft immer, ob Netzwerk PC verfügbar ist. Falls Netzwerk PC nicht verfügbar ist (kein LAN, Kabelbruch etc.), kopiert Skript Protokoll Print.pdf von "\Storage Card SD\Print.pdf" nach "\Storage Card SD\".

Solange kein Netzwerk da ist (z.B. zwei Stunden), sammeln sich meine Ausdrucke unter "\SD Storage\PDF\". Das funktionier auch.
Jetzt wenn die Netz wieder da ist (prüfen bei jeder Skript Ausführung beim Drucken des Protokolls), müssen die auf dem Netzwerk PC fehlende Dateien (PDFs) wieder von "\Storage Card SD\PDF\" auf Netzwerk PC kopiert werden und nach dem Kopieren "\Storage Card SD\PDF\" Inhalt gelöscht werden.

Wie kann man die fehlende Dateien (z.B.: Print_20230615_123110.pdf, Print_20230615_123240.pdf etc.) kopieren ohne ganzen Ordner zu übertragen/kopieren? Mit Movefile Befehl, habe ich ausprobiert, mit Befehl kann ich nur eine Datei verschieben. Und möchte beim Kopieren dann keine fehlende Protokolle mit neuem Name verschieben. Die Datei mit ursprünglichem Zeitstempel in der Name muss bleiben.

Code:
t = Now ' Systemzeit

uhrzeit = Year(t) & Right("0" & Month(t), 2) & Right("0" & Day(t), 2) & "_" & Right("0" & Hour(t), 2) & Right("0" & Minute(t), 2) & Right("0" & Second(t), 2) & ".pdf"

sourcefile = "\Storage Card SD\Print.pdf"
destfile ="Print" & "_" & uhrzeit

PC_Freigabe = False
Freigabename = "\\NetzwerkPC\Ordner\"

       
    If     FSO.Dir(Freigabename) <> "" Then
        PC_Freigabe = True 'ob Netzwerk PC verfügbar
        ShowSystemAlarm "Netzwerk PC ist verfügbar."
   
        FSO.FileCopy sourcefile, "\\NetzwerkPC\Ordner\" & destfile
        ShowSystemAlarm "VBFunktion: versuche FileCopy '" & sourcefile & "', '" & destfile & "'" 'Testausgabe: ob die Dateinamen korrekt gebildet sind
        ShowSystemAlarm "VBFunktion: Kopiervorgang auf Netzwerk-PC erfolgreich"  'Textausgabe "Kopiervorgang auf Netzwerk-PC erfolgreich"
    Else
        FSO.FileCopy  sourcefile, "\Storage Card SD\PDF\" & destfile
        ShowSystemAlarm "VBFunktion: versuche FileCopy '" & sourcefile & "', '" & destfile & "'" 'Testausgabe: ob die Dateinamen korrekt gebildet sind
        ShowSystemAlarm "VBFunktion: Kopiervorgang auf SD Karte erfolgreich"  'Textausgabe "Kopiervorgang auf SD Karte erfolgreich"
   
    End If

End Sub
 
In dem Skript von Dino, werden den zu kopierenden :.csv Dateien werden neue Namen mit Zeitstempel vergeben. In meinem Fall möchte ich nur
PDF Dateien, die beirets mit Zeistempel in der Dateiname sind, in Netzwerk PC kopieren.
Leider mi Filecopy kann man nur eine Datei kopieren, nicht mehrere mit Pfad\*.pdf.
Das würde ich mit For Schleife machen, aber wie kann man Dateien mit alten Dateinamen kopieren.
 
Hallo user,

werfe mal ein Code-Schnipsel in den Raum:
Code:
Set fs = CreateObject("FileCtl.FileSystem")
path = path & "\*"
firstLoop = true
Do
    If firstLoop _
    Then
        fileOrFolderName = fs.Dir(path)
        firstLoop = False
    Else
        fileOrFolderName = fs.Dir
    End If
    If fileOrFolderName <> "" _
    Then
        ...
        ...
    Else
        Exit Do
    End If
Loop


Gruß, Fred
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Im folgenden geschriebenen Skript, kommt Fehlermeldung
Code:
"Fehler 'The system cannot find the file specified.__' in Skript <VBFunktion_2> in Zeile .";

Fehlermeldung bezieht sich auf Zeile:

fs.Filecopy file, Destination

Was ist falsch im Code mit Filecopy..?
Code:
Dim source, Destination, file

Set fs = CreateObject("FileCtl.Filesystem")

source = "\Storage Card SD\Archiv\"
Destination= "\\NetzPC\Archiv\"

file = fs.Dir (source & "*.*")
Do While file <> ""
   
    file = fs.dir()    
    fs.Filecopy file, Destination

    If Err.Number  <> 0 Then
        ShowSystemAlarm "Error: " & CStr(Err.Number) & ", " & Err.Description
        Err.Clear
        End If
Loop

End Sub
 
Hallo.

Nach schnellem Blick:
Code:
file = fs.Dir (source & "*")
Do While file <> ""
    file = fs.dir
    fs.Filecopy file, Destination


Gruß, Fred
 
Hallo.

Nach schnellem Blick:
Code:
file = fs.Dir (source & "*")
Do While file <> ""
    file = fs.dir
    fs.Filecopy file, Destination


Gruß, Fred
hallo Fred,

ich habe mit Anpassungen ausprobiert kommt weiterhin Fehlermeldung bezogen auf Zeile mit fs.Filecopy file, Destination :
Code:
"Fehler 'The system cannot find the file specified.__' in Skript <VBFunktion_2> in Zeile
 
Nach schnellem Blick:
Code:
file = fs.Dir (source & "*")
Do While file <> ""
    file = fs.dir
    fs.Filecopy file, Destination
Ich vermute, auf die Art geht der erste gefundene Dateiname verloren. Bei Filecopy könnte in file eine leere Zeichenkette sein.


Probleme:
- das Dir liefert nur den Dateiname ohne Pfad (oder im Code von faust gar eine leere Zeichenkette beim zweiten file = fs.dir).
- das Filecopy braucht als Sourcefile den Dateiname mit Pfad (z.B. fs.Filecopy source & file, Destination)
- Destination enthält nur einen Pfad - geht das und ist das gewollt, oder soll die Datei dabei auch noch einen anderen Name erhalten?

Du musst nicht lange rätseln und rumprobieren, wie Du das Filecopy im Skript schreiben musst, sondern mache Dir im Skript Testausgaben rein (mit ShowSystemalarm) mit den erhaltenen und erzeugten Dateinamen, wenn du nicht sicher bist, was das Skript genau macht.

Kannst Du mal ein Beispiel mit echten Dateinamen zeigen, wie kopiert werden soll?
Du könntest auch in der Eingabeaufforderung einen copy-Befehl schreiben (wie unter DOS) - wie müsste der lauten?
z.B. copy "\Storage Card SD\Archiv\print.pdf" "\\NetzPC\Archiv\print_20230713_145500.pdf"
Den Befehl zerpflücke Stück für Stück und ersetze durch variable Teile wie Du es brauchst.

Harald
 
- Destination enthält nur einen Pfad - geht das und ist das gewollt, oder soll die Datei dabei auch noch einen anderen Name erhalten?

Du musst nicht lange rätseln und rumprobieren, wie Du das Filecopy im Skript schreiben musst, sondern mache Dir im Skript Testausgaben rein (mit ShowSystemalarm) mit den erhaltenen und erzeugten Dateinamen, wenn du nicht sicher bist, was das Skript genau macht.

Kannst Du mal ein Beispiel mit echten Dateinamen zeigen, wie kopiert werden soll?
Du könntest auch in der Eingabeaufforderung einen copy-Befehl schreiben (wie unter DOS) - wie müsste der lauten?
z.B. copy "\Storage Card SD\Archiv\print.pdf" "\\NetzPC\Archiv\print_20230713_145500.pdf"
Den Befehl zerpflücke Stück für Stück und ersetze durch variable Teile wie Du es brauchst.

Harald
Hi Harald, die Datei im Ziel muss so bleiben wie Original, Beispielformat: Print_20230712_123000.pdf.
Mit while Schleife will ich alle fehlende Protokolle vom SD in Netz schreiben und danach Inhalt von \Storage Card SD\Archiv\ löschen
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Falls bei fs.Dir das gleiche Ergebnis kommt wie im Windows Cmd Fenster, dann kommt da als erstes ein Punkt und als zweites zwei Punkte bevor die Dateinamen erscheinen.
 
Mit dem folgendem Code werden meine PDFs kopiert und Inhalt der SD\Archiv Ordners gelöscht. Skript funktioniert.

1) Aber nach Ausführung dieses VB Skript, kann ich mein Runtime nicht stoppen und in Windows CE Umgebung zu gelangen, um die Systemmeldungen.csv mir nachzuschauen.
Mein Panel hängt am der Stelle, obwohl ich mit Runtime stoppen verlassen will. Die Lösung war Programm neu laden oder HMI panel neu starten. Runtime stoppen geht nicht nur wenn ich dieses Skript ausführe.

Ich habe noch anderen VB Skript um Protokolle zu kopieren, mit diesen VB Skript nach Ausführung kann ich ohne Probleme Runtime verlassen.

Habt Ihr Idee was kann der Grund sein?? Meine Vermutung: Skript irgendwie bremst das System. Mein Do Loop wird nur solgange widerholt so viel dateien zu kopieren sind (z.B 5 Dateien werden kopiert und Inhalt von SD Karte gelöscht.

2. Andere Frage: im meinem Skript, folgende Showsystemalarm Meldungen Zeilen werden nicht als Textmeldung ausgegeben, die habe ich außer Loop am Ende eingefügt. Habt Ihr Idee warum ShowSystemalarm nach Loop nicht angezeigt wird?


Code:
ShowSystemAlarm "Dateien sind erfolgreich nach Netzwerk kopiert"
    ShowSystemAlarm "Dateien sind nach Kopieren ins Netz gelöscht"
[/CODE]

3. Mit Zeile fs.kill "\Storage Card SD\PDF\*.* innerhalb Schleife geht nicht. Es geht mit Dateiname - fs.kill "\Storage Card SD\PDF\" & fileName Jede Datei wird einzeln gelöscht bis Schleife beendet ist.

Ich probierte SD Archiv Inhalt mit fs.Kill "\Storage Card SD\PDF\*.*" nach Loop, außerhalb Schleife, zu löschen, aber es wird nur in Loop gelöscht


Code:
Dim fso, fs, firstLoop, fileName, fctStatus, UtilsFIO_doesFileExist, source destination
    On Error Resume Next

source = "\Storage Card SD\Archiv"
destination = "\\NetzPC\Archiv"
 
    UtilsFIO_doesFileExist = False

 
        Set fs = CreateObject("FileCtl.FileSystem")
        If fs.dir(source) = "" Then
            ShowSystemAlarm "Quelldatei ist nicht vorhanden"
        End If
 
            firstLoop = True
            Do
                If firstLoop Then
                    fileName = fs.Dir(source & "\*.*")
                    firstLoop = False
                   
                Else
                    fileName = fs.Dir
                   
                End If
                If fileName <> "" Then
                    If UtilsFIO_doesFileExist(destination & "\" & fileName) Then
                        fs.kill destination & "\" & fileName
                    End If
                    fs.FileCopy (source & "\" & fileName), (destination & "\" & fileName)
                    fctStatus = Err.Number
                     ShowSystemAlarm "Quelldatei:" & source & "\" & fileName & " Zieldatei:" & destination& "\" & fileName & " erfolgreich kopiert"
              
                End If
                fs.kill "\Storage Card SD\PDF\" & fileName
                'ShowSystemAlarm "Dateien sind nach Kopieren gelöscht"    
            Loop

    'fs.Kill "\Storage Card SD\PDF\"
    ShowSystemAlarm "Dateien sind erfolgreich nach Netzwerk kopiert"
    ShowSystemAlarm "Dateien sind nach Kopieren ins Netz gelöscht"
 
   Set fs = Nothing
  Set fso = Nothing

    Err.Clear
   On Error GoTo 0

End Sub
 
Zuletzt bearbeitet:
Hallo user.

Wo wird denn deine Loop beendet bzw. verlassen?? Sehe kein "Exit do" oder eine Schleifenbedingung wie "Do while ...".

Deine Schleife läuft in dieser Form bis zum Sankt-Nimmerleinstag (oder bis du die Runtime zwangsweise durch Ausschalten des Panels beendest).


Gruß, Fred.
 
Zurück
Oben