USB Laufwerk finden und Daten kopieren

  • [SIZE=5]
    scheut so aus, anhand der ersten 1 datei

    Code
    2007-05-25 20:45:36 : k:\DCIM\100MSDCF\DSC00013.JPG<--------<D:\Eigene Dateien\Backup\Handy\Thomas\DCIM\100MSDCF\2007-05-23<-->08.51.06.jpg


    EDIT ich habs gefunden, hatte nicht daran gedacht das <> nicht erlaubt sind :D
    man vor einer stunde lief es noch, dann rechner abgekackt , nun jetzt kopierter keine Videos mehr, 'Bilder gehen einwandfrei
    filegettime gibt leider einen Fehler aus weiß aber nicht warum , da der pfad zu datei passt. ?(
    hier mal das script
    die variable $name = wird später noch behandelt, erstmal muss es laufen^

    Spoiler anzeigen
    [autoit]


    #include "image_get_info.au3"
    #include <file.au3>
    $name = "Mutti"
    $laufwerk = ""
    $file = ""

    ; Handy suchen
    $arDrives = DriveGetDrive("ALL")
    For $i = 1 To $arDrives[0]
    $strDriveType = DriveGetType($arDrives[$i])
    If $strDriveType = "CDROM" Or $strDriveType = "FIXED" Then ContinueLoop
    $laufwerk = $arDrives[$i]
    $file = $laufwerk & "\webpage\bookmarks\Sony Ericsson.url"
    If FileExists($file) Then ExitLoop
    $laufwerk = ""
    $file = ""
    Next

    [/autoit] [autoit][/autoit] [autoit]

    ;if FileExists($laufwerk&"webpage\bookmarks\Thomas.txt") Then
    ; MsgBox(0,"",$laufwerk&"\webpage\bookmarks\Thomas.txt")
    ; thomas()
    ; MsgBox(0,"",$Name)
    ; EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $file <> "" Then


    $path = $laufwerk &"\DCIM\100MSDCF\" ;Pfad
    ;;msgbox(0, "", $laufwerk &"<---->"&$path)

    [/autoit] [autoit][/autoit] [autoit]

    $FileList = _FileListToArray($path)
    If (Not IsArray($FileList)) and (@error = 1) Then
    ;msgbox(0, "", "No Files\Folders Found.")
    Exit
    EndIf
    $liste = "D:\liste.txt"
    _FileWriteFromArray($liste,$FileList)
    $dateiliste = FileOpen($liste,0)

    [/autoit] [autoit][/autoit] [autoit]

    $dest = @MyDocumentsDir&"\"&"Backup\Handy\"&$Name&"\DCIM\100MSDCF\"
    ; hier werden die bilder und videonamen geholt
    While 1
    $datei = FileReadLine($dateiliste)
    if @error = -1 Then
    MsgBox(0,"Info","Alle Daten kopiert")
    FileDelete("D:\Eigene Dateien\Backup\Handy\"&$Name&"\DCIM\100MSDCF\----...jpg")
    ExitLoop
    EndIf
    ;-------------------------------------------------------------------------
    $file = $path&$datei

    [/autoit] [autoit][/autoit] [autoit]

    If @error Then Exit
    $aInfo = _ImageGetInfo($file)
    If @error Then
    ;msgbox (0, "Error", "Can't open file.")
    Exit
    Endif
    ;msgbox(0,"",$file)
    ;Dies hier für die Bilder
    ; Holt hier das Datum der Aufnamhe
    $DatumR = _imagegetparam($Ainfo,"DateTime")
    $Datum = StringTrimRight($DatumR,9)
    $Tag = StringTrimLeft($Datum,8)
    $Monat = StringTrimLeft($Datum,5)
    $Monat = StringTrimRight($Monat,3)
    $Jahr = StringTrimRight($Datum,6)
    $UDatum = $jahr & "-" & $monat & "-" & $tag


    ;Holt hier Die Uhrzeit der Aufnahme
    $Stunde = StringTrimLeft($DatumR,11)
    $Stunde = StringTrimRight($Stunde,6)
    $Minute = StringTrimLeft($DatumR,14)
    $Minute = StringTrimRight($Minute,3)
    $Sekunde = StringTrimLeft($DatumR,17)
    $UZeit= $Stunde&"."&$Minute&"."&$Sekunde& "."
    $Zeitdatum = $UDatum&"--"&$UZeit
    ;msgbox(0,"Info",$Zeitdatum)
    $dest2= $dest&$Zeitdatum&"jpg"
    ;;msgbox(0,"",$file&"<--------<"&$dest2)
    _FileWriteLog("c:\test.txt",$file&"<--------<"&$dest2)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ;msgbox(0,"",$file&"---"&$dest2)
    FileMove($file,$dest2,9)
    If @error = 0 Then
    ;msgbox (0, "Error", "Fehler")
    Endif


    msgbox(0,"",$file)
    if StringInStr($dest2,"----") Then
    msgbox(0,"","Dumme DAtei")
    endif
    if StringInStr($file,".3gp")Then
    msgbox(0,"","Video")
    msgbox(0,"",$file)
    ;Für Videos
    $t = FileGetTime($file, 1)
    If Not @error Then
    $t2 = $t[3]
    $t3 = $t2+"2"
    $yyyymdsms = $t[0] & "." & $t[1] & "." & $t[2] & "---" & $t3 & "." & $t[4] & "." & $t[5]
    msgbox(0, "Creation date of File", $yyyymdsms)
    MsgBox(0,"",$dest&"----"&$yyyymdsms)
    $dest3= $dest&$yyyymdsms&".3gp"
    MsgBox(0,"",$dest3)
    msgbox(0,"",$file&"-------"&$dest3)
    FileCopy($file,$dest3,9)
    endif

    [/autoit] [autoit][/autoit] [autoit]


    EndIf
    wend
    ;von Zeile 32

    [/autoit] [autoit][/autoit] [autoit]

    Else
    msgbox(0, "", "Handy ist nicht angeschlossen!")
    EndIf

    [/autoit]

    [/SIZE]
    ----------------------------

    Hallo ich arbeite mal wieder an meinen Script weiter, wollte jetzt noch einige Funktionen einbauen

    Eine davon wäre ein Fortschritssbalken, es gibt zwar einige Funktionen hier( im Board)

    aber nichts was mir hilft

    Ich bräuchte eine Funtion was mir den Fortschrit des Filereadline ausgibt

    den dort sind die Pfade drinnen, hier nochmal das Script

    Spoiler anzeigen
    [autoit]


    #cs ----------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit]

    AutoIt Version: 3.2.3.6 (beta)
    Author: myName

    [/autoit] [autoit][/autoit] [autoit]

    Script Function:
    Kopiert alle Aufnahmen der Kamera (DCIM auf Fetplatte mit namen der Daten

    [/autoit] [autoit][/autoit] [autoit]

    #ce ----------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit]

    ; Script Start - Add your code below here
    #include <GUIConstants.au3>
    #include "image_get_info.au3"
    #include <file.au3>
    $laufwerk = ""
    $file = ""

    ; Handy suchen
    $arDrives = DriveGetDrive("ALL")
    For $i = 1 To $arDrives[0]
    $strDriveType = DriveGetType($arDrives[$i])
    If $strDriveType = "CDROM" Or $strDriveType = "FIXED" Then ContinueLoop
    $laufwerk = $arDrives[$i]

    [/autoit] [autoit][/autoit] [autoit]

    ;Hier wird Besitzer ermittelt
    If FileExists($laufwerk & "\webpage\bookmarks\Thomas.txt") Then
    $Name ="Thomas"
    MsgBox(0,"Angeschlossendes Telefon",$Name)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If FileExists($laufwerk & "\webpage\bookmarks\Mutti.txt") Then
    $Name ="Mutti"
    MsgBox(0,"Angeschlossendes Telefon",$Name)
    EndIf

    If FileExists($laufwerk & "\webpage\bookmarks\Hans.txt") Then
    $Name ="Hans"
    MsgBox(0,"Angeschlossendes Telefon",$Name)
    EndIf

    If FileExists($laufwerk & "\webpage\bookmarks\Claudia.txt") Then
    $Name ="Claudia"
    MsgBox(0,"Angeschlossendes Telefon",$Name)
    EndIf

    if not FileExists($laufwerk & "\webpage\bookmarks\*.txt") Then
    Guiname()
    EndIf
    ;Ergebnis
    MsgBox(0,"",$laufwerk)
    MsgBox(0,"",$Name)
    $file = $laufwerk & "\webpage\bookmarks\"&$Name&".txt"
    If FileExists($file) Then ExitLoop
    $laufwerk = ""
    $file = ""

    [/autoit] [autoit][/autoit] [autoit]

    Next

    [/autoit] [autoit][/autoit] [autoit]

    ;Beginn der Abarbeitung
    If $file <> "" Then

    $path = $laufwerk &"\DCIM\100MSDCF\" ;Pfad
    ;;msgbox(0, "", $laufwerk &"<---->"&$path)

    [/autoit] [autoit][/autoit] [autoit]

    $FileList = _FileListToArray($path)
    If (Not IsArray($FileList)) and (@error = 1) Then
    ;msgbox(0, "", "No Files\Folders Found.")
    Exit
    EndIf
    $liste = "D:\liste.txt"
    _FileWriteFromArray($liste,$FileList)
    $dateiliste = FileOpen($liste,0)

    [/autoit] [autoit][/autoit] [autoit]

    $dest = @MyDocumentsDir&"\"&"Backup\Handy\"&$Name&"\DCIM\100MSDCF\"
    ; hier werden die bilder und videonamen geholt
    While 1
    $datei = FileReadLine($dateiliste)
    if @error = -1 Then
    $Zahl = FileReadLine($dateiliste,1)
    MsgBox(3,"Info","Alle Daten kopiert ( "&$Zahl&" Dateien). Sollen die Daten von Handy gelöscht werden")
    FileDelete("D:\Eigene Dateien\Backup\Handy\"&$Name&"\DCIM\100MSDCF\----...jpg")
    call("Loeschen")
    ExitLoop
    EndIf
    ;-------------------------------------------------------------------------
    $file = $path&$datei

    [/autoit] [autoit][/autoit] [autoit]

    If @error Then Exit
    $aInfo = _ImageGetInfo($file)
    If @error Then
    ;msgbox (0, "Error", "Can't open file.")
    Exit
    Endif
    ;msgbox(0,"",$file)
    ;Dies hier für die Bilder
    ; Holt hier das Datum der Aufnamhe
    $DatumR = _imagegetparam($Ainfo,"DateTime")
    $Datum = StringTrimRight($DatumR,9)
    $Tag = StringTrimLeft($Datum,8)
    $Monat = StringTrimLeft($Datum,5)
    $Monat = StringTrimRight($Monat,3)
    $Jahr = StringTrimRight($Datum,6)
    $UDatum = $jahr & "-" & $monat & "-" & $tag


    ;Holt hier Die Uhrzeit der Aufnahme
    $Stunde = StringTrimLeft($DatumR,11)
    $Stunde = StringTrimRight($Stunde,6)
    $Minute = StringTrimLeft($DatumR,14)
    $Minute = StringTrimRight($Minute,3)
    $Sekunde = StringTrimLeft($DatumR,17)
    $UZeit= $Stunde&"."&$Minute&"."&$Sekunde& "."
    $Zeitdatum = $UDatum&"--"&$UZeit
    ;msgbox(0,"Info",$Zeitdatum)
    $dest2= $dest&$Zeitdatum&"jpg"
    ;;msgbox(0,"",$file&"<--------<"&$dest2)
    ;_FileWriteLog("c:\test.txt",$file&"<--------<"&$dest2)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ;msgbox(0,"",$file&"---"&$dest2)
    $result = FileCopy($file,$dest2,9)
    If @error = 0 Then
    ;msgbox (0, "Error", "Fehler")
    Endif
    if StringInStr($dest2,"----") Then
    ;msgbox(0,"","Dumme DAtei")
    endif
    if StringInStr($file,"3GP")Then
    ;;msgbox(0,"","Video")

    ;Für Videos
    $t = FileGetTime($file, 1)
    If Not @error Then
    $t2 = $t[3]
    $t3 = $t2+"2";2Stunden für die Zeitzone hinzu
    $yyyymdsms = $t[0] & "-" & $t[1] & "-" & $t[2] & "--" & $t3 & "." & $t[4] & "." & $t[5]
    $dest3= $dest&$yyyymdsms&".3GP"
    $result = FileCopy($file,$dest3,9)
    FileClose("c:\liste.txt")
    endif
    EndIf
    wend

    [/autoit] [autoit][/autoit] [autoit]

    Else
    msgbox(0, "", "Handy ist nicht angeschlossen!")
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    func Loeschen()
    $dateiliste2 = FileOpen($liste,0)
    While 1
    $loeschen = FileReadLine($dateiliste2)
    if @error = -1 Then
    MsgBox(0,"Info","Alle Daten gelöscht")
    MsgBox(0,"Info","Fertig, Handy kann jetzt abgesteckt werden")
    ExitLoop
    EndIf
    $delete = $path&$loeschen
    ;MsgBox(0,"",$delete)
    FileDelete($delete)
    WEnd
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func Guiname()


    MsgBox(3,"Achtung","Konnte das Handy nicht identifizieren geben sie bitte den Namen des Besitzers an")

    GUICreate ("Hier Namen eintragen", 700,150)
    GUICtrlcreatelabel ("Hier den Namen eintragen",10,15)
    $nameL = GUICtrlCreateEdit ("", 180,15,500,20,0);noch werte rein
    $save = GUICtrlCreateButton (" Speichern", 200,120)
    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    While 1
    $msg = GUIGetMsg()
    If $msg <> 0 Then
    Select
    Case $msg = $save
    $Name = GUICtrlRead($NameL)
    MsgBox(0,"Name",$Name)
    $namensdatei = $laufwerk & "\webpage\bookmarks\"
    FileWriteLine("D:\"&$Name&".txt",$name)
    FileCopy("D:\"&$Name&".txt",$namensdatei)
    ExitLoop
    EndSelect
    EndIf
    wend
    endfunc

    [/autoit]

    Wie ihr seht wird der Filecopy Befehl nun halt öfters aufgerufen,halt für jede Zeile die der Befehl Filereadline ausgibt, deswegen wäre dort ein Balken Nutzlos


    hast du eine Idde?

    eine 2te Frage wäre

    am Ende des Scriptkomt ja die Frage ob die Daten gelöscht werden sollen, zu Auswahl steht halt "JA" "Nein=Abbruch"

    Wie erreiche ich das bei Nein und Abbruch keine Daten gelöscht werden?

    das 3 wäre hier zu finden

    Nochmalige Probleme USB Lauwerke zu finden

    3 Mal editiert, zuletzt von devildevil3 (30. Juli 2007 um 19:30)