TIA Datei umbennen

Zuviel Werbung?
-> Hier kostenlos registrieren
Leider funktioniert das Skript immer noch nicht, kommt immer einer Fehlermeldung in der Zeile 118 das entspricht am "fso.MoveFile".

If SmartTags("I_Zustand_Export") = 40 Then
dateipfad = "\Storage Card USB\Export" ' mit "" am Ende!
suchname = dateipfad & "Export*" ' "\\PCName\Ordner\Export*"
ddpos = Len(suchname)+1 ' Länge von Dateipfad ermitteln

Set fso = CreateObject("FileCtl.FileSystem")
fname = fso.Dir(suchname)
Do While fname <> "" ' wenn mindestens 1 Datei gefunden
dd = Mid(fname, ddpos) ' "_DDMMYYYY_HHMMSS.pdf"
newname = dateipfad & "Alarmarchiv" & dd ' "Alarmarchiv" & "_DDMMYYYY_HHMMSS.pdf"
fso.MoveFile fname, newname ' Datei umbenennen ==> Fehlermeldung
'Exit Do
fname = fso.Dir() ' weitere Datei vorhanden?
Loop
End If
 
Leider funktioniert das Skript immer noch nicht, kommt immer einer Fehlermeldung in der Zeile 118 das entspricht am "fso.MoveFile".
Darf man erfahren, was die Fehlermeldung aussagt?
Könnte es sein, dass Du bei einem vorausgehenden Test schon eine Datei mit dem Namen X erzeugt hast und es deshalb nicht möglich ist, der umzubenennenden Datei den Namen X zu geben?

Gruss, Heinileini
 
Zuviel Werbung?
-> Hier kostenlos registrieren
If SmartTags("I_Zustand_Export") = 40 Then
dateipfad = "\Storage Card USB\Export" ' mit "" am Ende!
suchname = dateipfad & "Export*" ' "\\PCName\Ordner\Export*"
ddpos = Len(suchname)+1 ' Länge von Dateipfad ermitteln
Vielleicht stört auch, daß Du ddpos hinter das "Export*" setzt anstatt auf den "*" und deshalb in newname der "*" enthalten ist?

Versuche es mal so:
Code:
If SmartTags("I_Zustand_Export") = 40 Then
    [COLOR="#0000FF"]dateipfad = "\Storage Card USB\Export\"     ' mit "\" am Ende![/COLOR]
    suchname  = dateipfad & "Export*"           ' "\\PCName\Ordner\Export*"
    [COLOR="#0000FF"]ddpos = Len(suchname)                       ' Position des "_DDMMYYYY_HHMMSS.pdf"[/COLOR]

    [COLOR="#0000FF"]Set fsoTest = CreateObject("FileCtl.FileSystem")[/COLOR]
    Set fso = CreateObject("FileCtl.FileSystem")
    fname = fso.Dir(suchname)
    Do While fname <> ""               ' wenn mindestens 1 Datei gefunden
        dd = Mid(fname, ddpos)         ' "_DDMMYYYY_HHMMSS.pdf"
        newname = dateipfad & "Alarmarchiv" & dd  ' "Alarmarchiv" & "_DDMMYYYY_HHMMSS.pdf"
        [COLOR="#0000FF"]If fsoTest.Dir(newname) <> "" Then
            ShowSystemAlarm "Fehler beim Umbenennen: Datei '" & newname & "' existiert bereits."
        Else
            fso.MoveFile fname, newname           ' Datei umbenennen
        End If[/COLOR]
        'Exit Do
        fname = fso.Dir()  ' weitere Datei vorhanden?
    Loop
End If

PS:
Programmcode posten mache bitte mit [CODE]-Tags - der #-Button im Beitragseditor. Dann bleiben die Einrückungen erhalten und der Code ist allgemein besser lesbar.

Harald
 
Folgendes Skript habe ich im Panel geladen, die rote markierte Zeile wird als Fehlermeldung angegeben. Die Datei wird auf dem USB
erstellt "\Storage Card USB\Export\Export_22022019_081215 erstellt. Wo ist der Wurm?

Code:
If SmartTags("I_Zustand_Export") = 40 Then
    dateipfad = "\Storage Card USB\Export\"     ' mit "\" am Ende!
    suchname  = dateipfad & "Export*"           ' "\\PCName\Ordner\Export*"
    ddpos   = Len(suchname)                        ' Position ermitteln
 
     Set fsoTest = CreateObject("FileCtl.FileSystem")
    Set fso = CreateObject("FileCtl.FileSystem")
    fname = fso.Dir(suchname)
    Do While fname <> ""               ' wenn mindestens 1 Datei gefunden
          dd  = Mid(fname, ddpos)   ' "_DDMMYYYY_HHMMSS.pdf"
           newname = dateipfad & "Alarmarchiv" & dd       ' "Alarmarchiv" & "_DDMMYYYY_HHMMSS.pdf"
        If fsoTest.Dir(newname) <> "" Then
            ShowSystemAlarm "Fehler beim Umbenennen: Datei '" & newname & "' existiert bereit."
        Else    
            [I][B][COLOR=#ff0000]fso.MoveFile fname, newname    ' Datei umbenennen[/COLOR][/B][/I]
        End If    
        'Exit Do
    fname = fso.Dir()  ' weitere Datei vorhanden?
    Loop
End If

OJMxTExMTExMTExMTExMTExMTIs29ZWM X8KhsZQTJWFxQAAAABJRU5ErkJggg==
 
Eine Fehlermeldung kommt in der Zeile 138, wo rot markiert ist. Das PDF wurde erstellt im \Storage Card USB\Data\Export_22022019_082356.pdf
Wo ist der Wurm?



Code:
If SmartTags("I_Zustand_Export") = 40 Then
    dateipfad = "\Storage Card USB\Data\"     ' mit "\" am Ende!
    suchname  = dateipfad & "Export*"           ' "\\PCName\Ordner\Export*"
    ddpos   = Len(suchname)                        ' Position ermitteln
 
     Set fsoTest = CreateObject("FileCtl.FileSystem")
    Set fso = CreateObject("FileCtl.FileSystem")
    fname = fso.Dir(suchname)
    Do While fname <> ""               ' wenn mindestens 1 Datei gefunden
          dd  = Mid(fname, ddpos)   ' "_DDMMYYYY_HHMMSS.pdf"
           newname = dateipfad & "Alarmarchiv" & dd       ' "Alarmarchiv" & "_DDMMYYYY_HHMMSS.pdf"
        If fsoTest.Dir(newname) <> "" Then
            ShowSystemAlarm "Fehler beim Umbenennen: Datei '" & newname & "' existiert bereit."
        Else    
           [COLOR=#ff0000] fso.MoveFile fname, newname    ' Datei umbenennen[/COLOR]
        End If    
        'Exit Do
        fname = fso.Dir()  ' weitere Datei vorhanden?
    Loop
End If

Fehlermeldung.jpg
 
Zuviel Werbung?
-> Hier kostenlos registrieren
füg mal folgende zeile über der move anweisung ein.
dann kann man sehen welches file wie umbenannt werden soll

ShowSystemAlarm fname & "---" & newname
 
Laß Dir mal zur Fehlersuche Werte der Variablen als Testausgaben ausgeben
Code:
       Else
[COLOR="#0000FF"]           ShowSystemAlarm "suchname: '" & suchname & "'"
           ShowSystemAlarm "fname   : '" & fname & "'"
           ShowSystemAlarm "newname : '" & newname & "'"[/COLOR]
           fso.MoveFile fname, newname    ' Datei umbenennen
Das sollte folgende Ausgaben (Meldungen) bringen:
Code:
suchname: '\Storage Card USB\Data\Export*'
fname   : '\Storage Card USB\Data\Export_22022019_082356.pdf'
newname : '\Storage Card USB\Data\Alarmarchiv_22022019_082356.pdf'
(Ich habe leider kein Comfortpanel zum testen.)

Harald
 
Ahh, alles klar. :D
Schreibe mal so:
Code:
    fname = fso.Dir(suchname)
    Do While fname <> ""               ' wenn mindestens 1 Datei gefunden
        [COLOR="#0000FF"]fname = dateipfad & fname[/COLOR]
        dd  = Mid(fname, ddpos)   ' "_DDMMYYYY_HHMMSS.pdf"
        newname = dateipfad & "Alarmarchiv" & dd       ' "Alarmarchiv" & "_DDMMYYYY_HHMMSS.pdf"
        If fsoTest.Dir(newname) <> "" Then
            ShowSystemAlarm "Fehler beim Umbenennen: Datei '" & newname & "' existiert bereit."
        Else    
            fso.MoveFile fname, newname    ' Datei umbenennen
        End If

Harald
 
Zuletzt bearbeitet:
Zurück
Oben