Jump to content

Sky Slate Blueberry Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate
Photo

Progressbar mit FileCopyDir auf WinCE


  • Please log in to reply
33 replies to this topic
Manni 123
  • Members
  • 84 posts
  • Last active: Jan 10 2016 12:56 AM
  • Joined: 02 Dec 2012

Danke euch lasso und nnnik

 

Das muss erst mal in Ruhe sacken lassen .

 

Wenn ich es nicht gebacken bekommen weis ich ja wo ich kompetente Hilfe bekommen .

 

Ich Probiere grad was mit einem

Gui, Add, Text, x420 y0 w10 h10  gExit ,X

Der erst erscheint wenn Kopieren fertig ist oder Progressbat 100% plus ein bissen mehr hatt .

 

Gruß Manni   



Manni 123
  • Members
  • 84 posts
  • Last active: Jan 10 2016 12:56 AM
  • Joined: 02 Dec 2012

Ich habe die Lösung , hart aber für WinCE die Sicherste und schnellste .

 

Hinter

FilecopyDir,%Startordner%,%Zielordner%, 1

 

ein

Shutdown 2

 

gut ich gebe ihm ein bisschen Luft mit 

Sleep, 500

 

Nur um auf Nummersicher zu gehen .

 

Wäre auf PC undenkbar aber auf WinCE genaurichtig , ich habe vorm

 FilecopyDir  eh schon alle erlaubten Prozesse beendet , aus diese Aktion kämme ich ohne Shutdown 2 eh nicht mehr raus .

 

Mein Versuch mit Gui, Add, Text, Exit wäre wohl ein Witz geworden .

 

 

Danke euch allen , ohne eure Hilfe hätte ich das nie geschafft .

 

 

Gruß Manni 

; Backup Restore MFD

#SingleInstance off
#NoTrayIcon

if(%0%){
  Startordner=%1%
  Zielordner =%2%
  hwnd =%3%
  FilecopyDir,%Startordner%,%Zielordner%, 1
  Sleep, 500    
  Shutdown 2
}

Startordner := "\My Flash Disk"

Backup  := 0
Restore := 0

IfExist \Storage Card\Gopalworld-Skin\My Flash Disk\menu.exe
    Zielordner := "\Storage Card\Gopalworld-Skin\My Flash Disk"
Else
    Zielordner := "\Storage Card\Backup\My Flash Disk"


MsgBox, 0x4,,  Die My Flash Disk auf Storage Card sichern ?
    IfMsgBox Yes
        {
        Backup := 1
        }
        Else
        {
        IfExist %Zielordner%
            {
            MsgBox, 0x4,,  Die My Flash Disk Sinerung von Storage Card Restoren  ?    
            IfMsgBox Yes
            Restore := 1
            }
            Else
            {
            SoundBeep, 750, 500
            MsgBox, 0x0,Timeout, Du hast noch kein Backup angelegt !
            ExitApp
            }
            }
            IfMsgBox No
                ExitApp
        
Gui, +AlwaysOnTop -SysMenu -Border
Gui, Add, Progress, x0 y0 w420 h10 cBlue vMyProgress Range0-100
Gui, Show, x20 y220 w430 h10
                
Process, Close,Poiwarner.exe
Process, Close,ST.exe
Process, Close,AudioManager.exe
Process, Close,ssp.exe
Process, Close,ssp_so.exe
Process, Close,Menue.exe
Process, Close,LowBatteryWarning.exe
Process, Close,FirstStartAP.exe
Process, Close,GnsFmTSrvc.exe
Process, Close,PhoneLink.exe
Process, Close,FMTService.exe
Process, Close,LaunchAutoSuspend.exe
Process, Close,iPT_Menu.exe
Process, Close,MortScript.exe

If Backup = 1
    {
    var1 := Ordnergroesse(Startordner)
    }

If Restore = 1
    {
    var1 := Ordnergroesse(Zielordner)
    }

SetTimer, CheckProgress, 100

if(Backup == 1){
Run, "%A_ScriptFullPath%" "%Startordner%" "%Zielordner%"
}

If Restore = 1
{
SoundBeep, 750, 500
MsgBox, 0x4,, Soll vorm Restore die My Flash Disk gelöscht  werden , dann geht das Restoren schneller  ?
IfMsgBox Yes
    {
    FileRemoveDir, \My Flash Disk\MapRegions, 1
    FileRemoveDir, \My Flash Disk\Navigation, 1
    FileRemoveDir, \My Flash Disk\Bluetooth, 1
    FileRemoveDir, \My Flash Disk\settings, 1
    FileRemoveDir, \My Flash Disk\CLM, 1
    FileRemoveDir, \My Flash Disk\dokus, 1
    FileRemoveDir, \My Flash Disk\Programme, 1
    FileRemoveDir, \My Flash Disk\Startmenue, 1
    
    FileDelete,  \My Flash Disk\*.*
    }
    
Run, "%A_ScriptFullPath%" "%Zielordner%" "%Startordner%"

}
return

CheckProgress:
GuiControl,,MyProgress,% (var2/var1)*100

If Backup = 1
    {
    var2 := Ordnergroesse(Zielordner)
    }

If Restore = 1
    {
    var2 := Ordnergroesse(Startordner)
    }

return

Ordnergroesse(Ordner){
Groesse = 0
Loop, %Ordner%\*.* , , 1
    Groesse += %A_LoopFileSize%  
 return Groesse
}

GuiClose:
ExitApp






Manni 123
  • Members
  • 84 posts
  • Last active: Jan 10 2016 12:56 AM
  • Joined: 02 Dec 2012

Hallo alle , ich noch mal .

 

So ich habe jetzt mit eure Hilfe alles soweit ausgetüftelt .

 

Backup ein paar mal mit und ohne löschen des alten Backup erstellen lassen , c. a. 7 Minuten für 300 MB ,  mit vorherigen löschen lassen des alten Backup 9 Minuten .

 

Backup auf Navi My Flash Disk zurück schreiben lassen mit und ohne MFD löschen lassen , c. a. 11 Minuten  für die 300 MB , mit vorherigen löschen der MFD 14 Minuten .

 

Also mit Progressbar sind die 14 Minuten schon angenehmer zu verkraften , vor allem in der      Entwicklungsphase ist es sonst ein Ratespiel ob es läuft oder sich aufgehangen hat .

 

 

Für die Zeit wo das alte Backup oder die MFD gelöscht wird bleibt die Progressbar 100% blau  c. a. 2 bis 3 Minuten , das ist auch perfekt so , danach fängt es richtig bei 0 an bis 100% und mach wenn fertig den  Softreset .

 

Jetzt kommt wieder das nur .

Nur wenn die MFD oder das alte Backup erhalten bleiben soll , was es ja auch macht , dann sind  Startordner und Zielordner gleich groß , dann bleibt die Progressbar von Anfang bis Ende auf 100% blau .

 

Ich habe das mal in Script für schreiben oder überschreiben  getrennt.

 

; für Überscheiben 

If ( MFD_Del = 1 or Backup_Del = 1 ){

GuiControl,,MyProgress,% (var1/var2)*100

}

 

könnte man fürs Überschreibung nicht eine andere Berechnung einsetzen , vielleicht nach Zeit  , Hauptsache es bewegt sich was und es passt in etwa wenn fertig . 

 

Ihr habt doch dafür mit Sicherheit eine Idee .

 

Bitte Bitte Bitte

 

Gruß Manni

; Backup Restore MFD

#SingleInstance off
#NoTrayIcon

if(%0%){
  Startordner=%1%
  Zielordner =%2%
  FilecopyDir,%Startordner%,%Zielordner%, 1
  Sleep, 500    
  Shutdown 2
}

Startordner := "\My Flash Disk"

Backup     := 0
Restore    := 0
MFD_Del    := 2
Backup_Del := 2

If(FileExist("\Storage Card\Gopalworld-Skin\My Flash Disk\menu.exe")){
    Zielordner := "\Storage Card\Gopalworld-Skin\My Flash Disk"
}    
    Else
    {
    Zielordner := "\Storage Card\Backup\My Flash Disk"
    }

MsgBox, 0x4,,  Die My Flash Disk als Backup auf Storage Card sichern ?
    IfMsgBox Yes
        {
        Backup := 1
        }
        Else
        {
        IfExist %Zielordner%
            {
            MsgBox, 0x4,,  Das My Flash Disk Backup wieder herstellen  ?    
            IfMsgBox Yes
            Restore := 1
            }
            Else
            {
            SoundBeep, 750, 500
            MsgBox, 0x0,Timeout, Du hast noch kein Backup angelegt !
            ExitApp
            }
            }
            IfMsgBox No
                ExitApp
        
Gui, +AlwaysOnTop -SysMenu -Border

If A_ScreenWidth = 480
    {
    Gui, Add, Progress, x0 y0 w430 h10 cBlue vMyProgress Range0-100
    Gui, Show, x20 y220 w430 h10
    }
else If A_ScreenWidth = 320
    {
    Gui, Add, Progress, x0 y0 w300 h10 cBlue vMyProgress Range0-100
    Gui, Show, x10 y180 w300 h10
    }
                    
Process, Close,Poiwarner.exe
Process, Close,ST.exe
Process, Close,AudioManager.exe
Process, Close,ssp.exe
Process, Close,ssp_so.exe
Process, Close,Menue.exe
Process, Close,LowBatteryWarning.exe
Process, Close,FirstStartAP.exe
Process, Close,GnsFmTSrvc.exe
Process, Close,PhoneLink.exe
Process, Close,FMTService.exe
Process, Close,LaunchAutoSuspend.exe
Process, Close,iPT_Menu.exe
Process, Close,MortScript.exe

If Backup = 1
    {
    var1 := Ordnergroesse(Startordner)
    }

If Restore = 1
    {
    var1 := Ordnergroesse(Zielordner)
    }

SetTimer, CheckProgress, 100

if(Backup == 1){
Backup_Del := 0
IfExist %Zielordner%
{
    SoundBeep, 750, 500
    Backup_Del := 1
    MsgBox, 0x4,, Soll vorm Backup die alte Sicherung gelöscht werden ?
        IfMsgBox Yes
        {
            FileRemoveDir, %Zielordner%, 1
            Backup_Del := 0
        }
}        
Run, "%A_ScriptFullPath%" "%Startordner%" "%Zielordner%"
}

If (Restore == 1){
SoundBeep, 750, 500
MFD_Del := 1
MsgBox, 0x4,, Soll vorm Restore die My Flash Disk gelöscht  werden ?
IfMsgBox Yes
    {
    FileRemoveDir, \My Flash Disk\MapRegions, 1
    FileRemoveDir, \My Flash Disk\Navigation, 1
    FileRemoveDir, \My Flash Disk\Bluetooth, 1
    FileRemoveDir, \My Flash Disk\settings, 1
    FileRemoveDir, \My Flash Disk\CLM, 1
    FileRemoveDir, \My Flash Disk\dokus, 1
    FileRemoveDir, \My Flash Disk\Programme, 1
    FileRemoveDir, \My Flash Disk\Startmenue, 1
    
    FileDelete,  \My Flash Disk\*.*
    MFD_Del := 0
    }
    
Run, "%A_ScriptFullPath%" "%Zielordner%" "%Startordner%"

}
return

CheckProgress:

; schreiben
If ( MFD_Del = 0 or Backup_Del = 0 ){
GuiControl,,MyProgress,% (var2/var1)*100
}

; für Überscheiben  
If ( MFD_Del = 1 or Backup_Del = 1 ){
GuiControl,,MyProgress,% (var1/var2)*100
}

If Backup = 1
    {
    var2 := Ordnergroesse(Zielordner)
    }

If Restore = 1
    {
    var2 := Ordnergroesse(Startordner)
    }

return

Ordnergroesse(Ordner){
Groesse = 0
Loop, %Ordner%\*.* , , 1
    Groesse += %A_LoopFileSize%  
 return Groesse
}

GuiClose:
ExitApp



nnnik
  • Members
  • 1625 posts
  • Last active: Jan 24 2019 02:19 PM
  • Joined: 28 Jul 2012

Du misst wie gross der Ordner vorher schon war und subtrahierst diesen Wert.


Visit the new forum ahkscript.org.

http://ahkscript.org


Manni 123
  • Members
  • 84 posts
  • Last active: Jan 10 2016 12:56 AM
  • Joined: 02 Dec 2012

Quellordner  und Zielordner sind im Überschreibungsfall gleich Groß .

 

Gruß Manni



lasso
  • Members
  • 111 posts
  • Last active: May 19 2013 04:19 PM
  • Joined: 02 Nov 2012

dann kopier doch alles einzeln ohne zweiten prozess

nach folgendem muster

ZielGroesse  := Ordnergroesse(Zielordner)
StartGroesse := 0
Loop, %Startordner%\*.* , , 1
{
  FileCopy,%A_LoopFileLongPath%,%Zielordner%,1
  StartGroesse += A_LoopFileSize
  GuiControl,,MyProgress,% (StartGroesse/ZielGroesse)*100
}


Manni 123
  • Members
  • 84 posts
  • Last active: Jan 10 2016 12:56 AM
  • Joined: 02 Dec 2012

Hi lasso

 

Das habe ich mal wieder nicht verstanden .

 

Wo kommt das hin , anstatt was ?

 

 

Ich brauche doch nur noch das sich die Progressbar bei überschreiben auch bewegt .

 

Das Andere passt alles 100Pro .

 

Gruß Manni



Manni 123
  • Members
  • 84 posts
  • Last active: Jan 10 2016 12:56 AM
  • Joined: 02 Dec 2012

Hallo alle

 

Ich bin die ganze Zeit schon dran das hin zu bekommen .

 

Ich habe das kombiniert , neu erstellen eines Backup und Restore mit zweiten Prozess FileCopyDir , hierbei läuft die Proressbar in Ordner großen Stücken ab , egal Hauptsache es geht . 

 

Überscheiben eine vorhandene Sicherung  oder wieder Herstellung eines Backup und Restore als nur ein Prozess mit FileCopy , Ordner müssen im selben Loop selbst angelegt werden  , hierbei läuft die Progressbar schön Stück für Stück File weise ab . 

 

Das Kopieren  mit FileCopy in Loop und A_LoopFileLongPath  klappt jetzt alles ganz genau auch mit den jeweiligen Ordnern , habe ich trotz eure guten Hilfe lange dran geknabbert , nur komme ich nicht über 5  Unterordner , ich habe mit unter bis zu 7 Unterordner , insgesamt 364 Ordner bei 300 MB  5165 Dateien .

Und die vier Dateien die direkt in Root  My Flash Disk liegen kopiert es auch nicht , nur Ordner mit Inhalt bis 5 Unterordner mit Inhalt .

Zum Test habe ich den zweiten Prozess ganz raus genommen falls die sich  gegenseitig stören  , daran lag es nicht .

 

Ich bekommen nach c .a. dreivierten des Kopiervorgangs eine Fehlermeldung , wenn ich anstatt FileCopy  FileCopyDir nur diesen Befehl ändere bekomme ich keine Fehlermeldung ,   FileCreateDir brauche ich in diesem Fall nicht aber auch mit Ordnererstellung kommt diese Fehlermeldung nicht .

Ich habe es auch auf einem anderen Navi getestet mit selber Fehlermeldung , also liegt es nicht an eine defekten Datei .

Mit dreivierten der kopierten Dateien meinte ich 225 anstatt 300 MB , Progressbar kämme auch schon hin .

 

Kann es sein das FileCopy für WinCE nicht für so viele Unterordner gedacht ist ?

 

Gruß Manni

 

2vmsnk7.png

; Backup Restore MFD

#SingleInstance off
#NoTrayIcon


if(%0%){
  Startordner=%1%
  Zielordner =%2%
  FilecopyDir,%Startordner%,%Zielordner%, 1
  Sleep, 500    
  Shutdown 2
}


Startordner := "\My Flash Disk"

Backup     := 2
Restore    := 2
MFD_Del    := 2
Backup_Del := 2

If(FileExist("\Storage Card\Gopalworld-Skin\My Flash Disk\menu.exe")){
    Zielordner := "\Storage Card\Gopalworld-Skin\My Flash Disk"
    Zielordner2 := "\Storage Card\Gopalworld-Skin"
}    
      Else
      {
      Zielordner := "\Storage Card\Backup\My Flash Disk"
      Zielordner2 := "\Storage Card\Backup"
      }

MsgBox, 0x4,,  Die My Flash Disk als Backup auf Storage Card sichern ?
    IfMsgBox Yes
        {
        Backup := 1
        }
        Else
        {
        IfExist %Zielordner%
            {
            MsgBox, 0x4,,  Das My Flash Disk Backup wieder herstellen  ?    
            IfMsgBox Yes
            Restore := 1
            }
            Else
            {
            SoundBeep, 750, 500
            MsgBox, 0x0,Toolout, Du hast noch kein Backup angelegt !
            ExitApp
            }
            }
            IfMsgBox No
                ExitApp
       
Gui, +AlwaysOnTop -SysMenu -Border

If A_ScreenWidth = 480
      {
      Gui, Add, Progress, x0 y0 w430 h10 cBlue vMyProgress Range0-100
      Gui, Show, x20 y220 w430 h10
      }
else If A_ScreenWidth = 320
      {
      Gui, Add, Progress, x0 y0 w280 h10 cBlue vMyProgress Range0-100
      Gui, Show, x10 y180 w280 h10
      }
                    
Process, Close,Poiwarner.exe
Process, Close,AudioManager.exe
Process, Close,ssp.exe
Process, Close,ssp_so.exe
Process, Close,LowBatteryWarning.exe
Process, Close,GnsFmTSrvc.exe
Process, Close,PhoneLink.exe
Process, Close,FMTService.exe
Process, Close,LaunchAutoSuspend.exe
Process, Close,Menue.exe

If A_ScreenWidth = 320
      Process, Close,FirstStartAP.exe

If Backup = 1
    {
    var1 := Ordnergroesse(Startordner)
    }

If Restore = 1
    {
    var1 := Ordnergroesse(Zielordner)
    }

SetTimer, CheckProgress, 100

if(Backup == 1){
Backup_Del := 0
IfExist %Zielordner%
{
      SoundPlay *32 
      Backup_Del := 1
      MsgBox, 0x4,, Soll vorm Backup die alte Sicherung gelöscht werden ?
            IfMsgBox Yes
            {
                  FileRemoveDir, %Zielordner%, 1
                  Backup_Del := 0
            }
}     

If Backup_Del = 1
{
SetTimer, CheckProgress, off
ZielGroesse  := var1
StartGroesse := 0
      Loop, %Startordner%\*.*,1,1
      {
       FileCreateDir, %Zielordner2%\%A_LoopFileLongPath%
       FileCopy,%A_LoopFileLongPath%,%Zielordner2%\%A_LoopFileLongPath%,1
       StartGroesse += %A_LoopFileSize%
       GuiControl,,MyProgress,% (StartGroesse/var1)*100
       ;If ErrorLevel
      ;MsgBox, "%A_LoopFileLongPath%" konnte nicht nach "%Zielordner2%\%A_LoopFileName%" kopiert werden.
      }
      ;Sleep, 500
       ;Shutdown 2
}
      If Backup_Del = 0
      {           
      Run, "%A_ScriptFullPath%" "%Startordner%" "%Zielordner%"
      }
}

If (Restore == 1){
SoundPlay *32
MFD_Del := 1
MsgBox, 0x4,, Soll vorm Restore die My Flash Disk gelöscht  werden ?
IfMsgBox Yes
    {
    FileRemoveDir, \My Flash Disk\MapRegions, 1
    FileRemoveDir, \My Flash Disk\Navigation, 1
    FileRemoveDir, \My Flash Disk\Bluetooth, 1
    FileRemoveDir, \My Flash Disk\settings, 1
    FileRemoveDir, \My Flash Disk\CLM, 1
    FileRemoveDir, \My Flash Disk\dokus, 1
    FileRemoveDir, \My Flash Disk\Programme, 1
    FileRemoveDir, \My Flash Disk\Startmenue, 1
   
    FileDelete,  \My Flash Disk\*.*
    MFD_Del := 0
    }

If MFD_Del = 1
{
SetTimer, CheckProgress, off      
ZielGroesse  := var1
StartGroesse := 0
      Loop, %Zielordner2%\*.*, 1, 1
      {
       FileCreateDir, %Zielordner2%\%A_LoopFileLongPath%
       FileCopy,%A_LoopFileLongPath%,%Startordner%\%A_LoopFileLongPath%,1
       StartGroesse += %A_LoopFileSize%
       GuiControl,,MyProgress,% (StartGroesse/var1)*100
       ;If ErrorLevel
      ;MsgBox, "%A_LoopFileLongPath%" konnte nicht nach "%Startordner%\%A_LoopFileName%" kopiert werden.
      }
     
      ;Sleep, 500
      ;Shutdown 2
}
      If MFD_Del = 0
      {             
      Run, "%A_ScriptFullPath%" "%Zielordner%" "%Startordner%"
      }
}
return

CheckProgress:

If ( MFD_Del = 0 or Backup_Del = 0 ){
GuiControl,,MyProgress,% (var2/var1)*100 
}

If Backup = 1
    {
    var2 := Ordnergroesse(Zielordner)
    }

If Restore = 1
    {
    var2 := Ordnergroesse(Startordner)
    }

return

Ordnergroesse(Ordner){
Groesse = 0
Loop, %Ordner%\*.* , , 1
    Groesse += %A_LoopFileSize% 
 return Groesse
}

GuiClose:
ExitApp









Ich glaube ich bleibe erst mal hier bei mit zwei Prozesse  , da klappt das kopieren 100%

; Backup Restore MFD

#SingleInstance off
#NoTrayIcon

if(%0%){
  Startordner=%1%
  Zielordner =%2%
  FilecopyDir,%Startordner%,%Zielordner%, 1
  Sleep, 500    
  Shutdown 2
}

Startordner := "\My Flash Disk"

Backup     := 2
Restore    := 2
MFD_Del    := 2
Backup_Del := 2

var3 := 0

If(FileExist("\Storage Card\Gopalworld-Skin\My Flash Disk\menu.exe")){
    Zielordner := "\Storage Card\Gopalworld-Skin\My Flash Disk"
}    
    Else
    {
    Zielordner := "\Storage Card\Backup\My Flash Disk"
    }

MsgBox, 0x4,,  Die My Flash Disk als Backup auf Storage Card sichern ?
    IfMsgBox Yes
        {
        Backup := 1
        }
        Else
        {
        IfExist %Zielordner%
            {
            MsgBox, 0x4,,  Das My Flash Disk Backup wieder herstellen  ?    
            IfMsgBox Yes
            Restore := 1
            }
            Else
            {
            SoundBeep, 750, 500
            MsgBox, 0x0,Toolout, Du hast noch kein Backup angelegt !
            ExitApp
            }
            }
            IfMsgBox No
                ExitApp
        
Gui, +AlwaysOnTop -SysMenu -Border

If A_ScreenWidth = 480
    {
    Gui, Add, Progress, x0 y0 w430 h10 cBlue vMyProgress Range0-100
    Gui, Show, x20 y220 w430 h10
    }
else If A_ScreenWidth = 320
    {
    Gui, Add, Progress, x0 y0 w280 h10 cBlue vMyProgress Range0-100
    Gui, Show, x10 y180 w280 h10
    }
                    
Process, Close,Poiwarner.exe
;Process, Close,ST.exe
Process, Close,AudioManager.exe
Process, Close,ssp.exe
Process, Close,ssp_so.exe
Process, Close,LowBatteryWarning.exe
Process, Close,GnsFmTSrvc.exe
Process, Close,PhoneLink.exe
Process, Close,FMTService.exe
Process, Close,LaunchAutoSuspend.exe

If A_ScreenWidth = 320
    Process, Close,FirstStartAP.exe

If Backup = 1
    {
    var1 := Ordnergroesse(Startordner)
    }

If Restore = 1
    {
    var1 := Ordnergroesse(Zielordner)
    }

; SetTimer, CheckProgress, 100

if(Backup == 1){
Backup_Del := 0
IfExist %Zielordner%
{
    SoundPlay *32
    Backup_Del := 1
    MsgBox, 0x4,, Soll vorm Backup die alte Sicherung gelöscht werden ?
        IfMsgBox Yes
        {
            FileRemoveDir, %Zielordner%, 1
            Backup_Del := 0
        }
}        
Run, "%A_ScriptFullPath%" "%Startordner%" "%Zielordner%"
}

If (Restore == 1){
SoundPlay *32
MFD_Del := 1
MsgBox, 0x4,, Soll vorm Restore die My Flash Disk gelöscht  werden ?
IfMsgBox Yes
    {
    FileRemoveDir, \My Flash Disk\MapRegions, 1
    FileRemoveDir, \My Flash Disk\Navigation, 1
    FileRemoveDir, \My Flash Disk\Bluetooth, 1
    FileRemoveDir, \My Flash Disk\settings, 1
    FileRemoveDir, \My Flash Disk\CLM, 1
    FileRemoveDir, \My Flash Disk\dokus, 1
    FileRemoveDir, \My Flash Disk\Programme, 1
    FileRemoveDir, \My Flash Disk\Startmenue, 1
    
    FileDelete,  \My Flash Disk\*.*
    MFD_Del := 0
    }
    
Run, "%A_ScriptFullPath%" "%Zielordner%" "%Startordner%"
}

SetTimer, CheckProgress, 100

CheckProgress:

If ( MFD_Del = 0 or Backup_Del = 0 ){
GuiControl,,MyProgress,% (var2/var1)*100
}


If ( MFD_Del = 1 or Backup_Del = 1 ){
GuiControl,,MyProgress,% (var3/var1)*100
}

If Backup = 1
    {
    var2 := Ordnergroesse(Zielordner)
    }

If Restore = 1
    {
    var2 := Ordnergroesse(Startordner)
    }
    
 If Backup_Del = 1
    {
    var3 := Ordnergroesse(Zielordner)
    }  
    
 If MFD_Del = 1
    {
    var3 := Ordnergroesse(Startordner)
    }   
   
return

Ordnergroesse(Ordner){
Groesse = 0
Loop, %Ordner%\*.* , , 1
    Groesse += %A_LoopFileSize%
 return Groesse
}

GuiClose:
ExitApp





Manni 123
  • Members
  • 84 posts
  • Last active: Jan 10 2016 12:56 AM
  • Joined: 02 Dec 2012

Hallo alle

 

Ich wollte jetzt , zumindest für mich , wenn der Zielordner schon existiert immer löschen lassen , wenn ich das normal im Script , siehe ein Post höher ,  im ersten Prozess mache bei der Backup Prozedur geht es ganz normal ohne Fehlermeldung , dann bewegt sich aber nichts an der Progressbar weil es dann wartet bis FileRemoveDir fertig ist so wie früher bei FileCopyDir .

 

Deswegen habe ich das Löschen des Zielordner auch im zweiten Prozess verlagert , so nimmt der Balken der Progressbar ab  aber dort bricht der Löschvorgang mit Fehlermeldung mit Hinweis auf Ordner an unterschiedlichen Stellen ab , wenn ich das Löschen in eine Loop Schleife packe werden mir sieben oder acht von über 350 Ordner als Fehler ausgegeben , am ende sind aber trotzdem alle Order und Dateien im Zielorder gelöscht und der Kopiervorgang läuft ohne Probleme durch , also kann es eigentlich nicht an zu knappen Arbeitsspeicher liegen , an den Ordner oder deren Inhalt kann es auch nicht liegen weil es bei jeden Versuch immer wieder andere Ordner sind die als Fehler gemeldet werden .

 

Wenn ich oder genauer gesagt wir es hin bekommen das beim Löschen keine Fehlermeldung mehr kommt brauche ich das Loop natürlich nicht mehr , vielleicht kann man diese Fehlermeldungen unterdrücken .

 

Könnt ihr mir bitte noch mal Helfen ?

 

Gruß Manni

 

296k968.png

if(%0%){
  Startordner =%1%
  Zielordner =%2%
  If(FileExist(Zielordner)){
  Loop
  {
  FileRemoveDir,%Zielordner%, 1
  If Not(FileExist(Zielordner))
  break
  }
  }
  FilecopyDir,%Startordner%,%Zielordner%, 1
  Sleep, 500 
  Shutdown 2
}


Manni 123
  • Members
  • 84 posts
  • Last active: Jan 10 2016 12:56 AM
  • Joined: 02 Dec 2012

Ich habe das mal beobachtet , die Fehlermeldung kommt wenn ein Unterordner leer gemacht wurde und dieser Ordner gelöscht werden soll .

 

Aber immer unterschiedliche Ordner  und wie schon gesagt von 350 vielleicht 10 , mal ehr mal weniger .

 

Als wenn’s ein Timingproblem wäre .

 

Gruß Manni



nnnik
  • Members
  • 1625 posts
  • Last active: Jan 24 2019 02:19 PM
  • Joined: 28 Jul 2012

Debug das ganze doch mit Msgboxen.

Das Skript ist schon komplex und wir können da nicht durchsteigen ohne WinCE.


Visit the new forum ahkscript.org.

http://ahkscript.org


Manni 123
  • Members
  • 84 posts
  • Last active: Jan 10 2016 12:56 AM
  • Joined: 02 Dec 2012

Ich weis jetzt warum mir beim

FileRemoveDir,%Zielordner%, 1

Fehler gemeldet werden . Wenn

Loop, %Ordner%\*.*, , 1

wieder mal die Größe der Files ermittelt und zufällig grad an dem zulöschenden

Order ist kann der leere Ordner nicht gelöscht werden .

 

Also kann ich die Progressbar für Löschen vergessen .

 

Gruß Manni

if(%0%){
  Startordner =%1%
  Zielordner =%2%
  FileRemoveDir,%Zielordner%, 1
  FilecopyDir,%Startordner%,%Zielordner%, 1
  Sleep, 500    
  Shutdown 2
}
-
-
-
-
-
-
Ordnergroesse(Ordner){
Groesse = 0
Loop, %Ordner%\*.*, , 1
    Groesse +=%A_LoopFileSize% 
 return Groesse
}



Manni 123
  • Members
  • 84 posts
  • Last active: Jan 10 2016 12:56 AM
  • Joined: 02 Dec 2012

Eine Frage bitte noch .

 

Ich möchte das der Ordner My Flash Disk nicht gelöscht wird also nur der Inhalt mit samt allen Unterordner .

FileRemoveDir, \My Flash Disk, 1

So geht es zwar aber es kommt eine Meldung das der Ordner My Flash Disk nicht gelöscht werden kann weil er geschützt ist , ist in WinCE das gleiche als wenn ich ein Laufwerk z.B. C: löschen wollte .

Wenn ich die Meldung wegklicke ist My Flash Disk leer und der Kopiervorgang läuft auch an ,  das ist schon mal gut  , also das Tool bricht nicht ab .

FileRemoveDir, \My Flash Disk\, 1 
FileRemoveDir, \My Flash Disk\*.*, 1

So tut sich nichts.

FileRemoveDir, \My Flash Disk\MapRegions, 1
FileRemoveDir, \My Flash Disk\Navigation, 1
FileRemoveDir, \My Flash Disk\Bluetooth, 1
FileRemoveDir, \My Flash Disk\settings, 1
FileRemoveDir, \My Flash Disk\CLM, 1
FileRemoveDir, \My Flash Disk\dokus, 1
FileRemoveDir, \My Flash Disk\Programme, 1
FileRemoveDir, \My Flash Disk\Startmenue, 1
FileDelete,  \My Flash Disk\*.*

Wenn ich die Ordner die sich in My Flash Disk befinden einzeln angebe geht es zwar aber ich weis ja nicht wenn zusätzliche Ordner angelegt wurden wie sie lauten .

 

FileSelectFolder  steht für WinCE AHK nicht zur Verfügung , sonst hätte ich die Ordner von dort aus gelöscht . 

 

Kann ich die Ordner irgendwie vorher ermitteln lassen die sich in

My Flash Disk befinden ?

 

Gruß Manni



nnnik
  • Members
  • 1625 posts
  • Last active: Jan 24 2019 02:19 PM
  • Joined: 28 Jul 2012

Loop, \My Flash Disk\* , 3

 

Der Befehlsollte durch alle Ordner Loopen.

Siehe AHKHilfe.


Visit the new forum ahkscript.org.

http://ahkscript.org


Manni 123
  • Members
  • 84 posts
  • Last active: Jan 10 2016 12:56 AM
  • Joined: 02 Dec 2012

Danke erst mal nnnik

 

Aber was soll in der Loop ausgeführt werden ?

FileRemoveDir, verlangt ein Ordnernamen oder Variable  und dann wird der
angegebene Ordner mit gelöscht was im Falle My Flash Disk nicht sein darf . 
Loop, \My Flash Disk\* , 3   geht bei mir nicht , wohl mit 0 oder 1 .
Gruß Manni