USB Laufwerk finden und Daten kopieren

  • hallo

    wie mache ich es das das Script mir den richtigen Laufwerkbuchstaben ausließt?

    Nachher sollen alle Daten von diesen Laufwerk auf die Festplatte kopiert werden

    ok, bei mir ist dieser Buchstabe fest( bei anderen Leuten aber logischerweise ein anderer)

    mom schaut es so aus (es überprüft ob I: verfügbar ist und der richtige angesteckt ist

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    #include <file.au3>
    $file = "I:\webpage\bookmarks\Sony Ericsson.url"

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

    if FileExists($file) Then
    $laufwerk = "i:"
    MsgBox(0,"",$laufwerk)
    $jahr = @YEAR
    $monat = @MON
    $tag = @MDAY
    $datum = $jahr&"."&$monat&"."&$tag
    MsgBox(0,"",$datum)
    $Monikai = @MyDocumentsDir&"\"&"Backup\Handy\Monika\"
    $Pfad = $mutti&$datum
    MsgBox(0,"",$pfad)
    DirCreate($pfad)
    DirCopy($Laufwerk,$Pfad,0)
    endif

    [/autoit]

    was das Problem ist, es kopiert nichts, weiß aber nicht warum weil keine \ bei den Pfaden am den Enden sind

    kann mir wer helfen

    2 Mal editiert, zuletzt von devildevil3 (17. Mai 2007 um 20:58)

    • Offizieller Beitrag

    Zur Zeit lautet dein Kopierbefehl

    Code
    Copy I: 2007.5.17

    ich glaube nicht das es das ist was Du wolltest oder?

  • Zitat

    Original von bernd670
    Zur Zeit lautet dein Kopierbefehl

    Code
    Copy I: 2007.5.17

    ich glaube nicht das es das ist was Du wolltest oder?

    eigentlich lauter er doch

    Code
    Copy I: , D:\Eigene Dateien\Backup\Handy\Monika\2007.05.17

    bei $Pfad füge ich doch $monika(D:\Eigene Dateien\Backup\Handy\Monika und das Datum (2007.05.17) zusammen


    ist auch so, steht zumindest in der msgbox

    [Blockierte Grafik: http://img225.imageshack.us/img225/5650/infoec3.jpg]


    grüße ;)

    2 Mal editiert, zuletzt von devildevil3 (18. Mai 2007 um 09:38)

  • Hallo Devilvedil3.

    Schau Dir mal diesen Beitrag an, vllt. hilf er Dir weiter.
    DirCopy

    LG Lina

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

    • Offizieller Beitrag

    Dann benutzt Du aber ein anderes Script als das oben gepostete.

    Da wird nämlich $Pfad aus $mutti&$datum gebildet und $mutti ist nirgendwo definiert!

  • Hallo Bernd670.

    Bei dem oberen Script frage ich mich, ob $mutti evtl. nicht gleich $Monikai ist. Sehe keine Definition für $mutti, aber wenn seine Mitti Monika heißt, könnte das vielleicht ein Gedankenfehler sein.
    Das Thema ansich ist aber echt interessant.

    LG Lina

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

    • Offizieller Beitrag

    Sei gegrüßt Alina!

    Wenn $mutti gleich $Monikai wäre müsste vor "$Pfad = $mutti&$datum" dann $mutti = $Monikai stehen, tut es aber nicht! ;)

    Es würde die Sache halt einfacher machen wenn devildevil3 das Script posten würde, dass er benutzt.

  • puh, habs noch nicht ale umgeändert gehabt, habe ich verwirrung gestiftet

    hatte zuerst monika, dachte aber dann mutti wäre dann doch treffneder;)
    Script

    Spoiler anzeigen
    [autoit]


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

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

    AutoIt Version: 3.2.3.6 (beta)
    Author: myName

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

    Script Function:
    Template AutoIt script.

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

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

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

    ; Script Start - Add your code below here

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

    #include <file.au3>
    $file = "I:\webpage\bookmarks\Sony Ericsson.url"
    If not FileExists($file) Then
    MsgBox(1,"Fehler", "Laufwerk I: nicht vorhanden")
    EndIf
    $file1 = "g:\webpage\bookmarks\Sony Ericsson.url"

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

    if FileExists($file) Then
    $laufwerk = "i:"
    MsgBox(0,"",$laufwerk)
    $jahr = @YEAR
    $monat = @MON
    $tag = @MDAY
    $datum = $jahr&"."&$monat&"."&$tag
    MsgBox(0,"",$datum)
    $mutti = @MyDocumentsDir&"\"&"Backup\Handy\Mutti\"
    $Pfad = $mutti&$datum
    MsgBox(0,"",$pfad)
    DirCreate($pfad)
    MsgBox(1,"Info",$laufwerk &" , "&$Pfad)
    DirCopy($Laufwerk,$Pfad,0)
    endif

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

    sry nochmals, war zu schnell und habe das halbumgeänderte Script gepostet 8o

    Alina den thread hatte ich schon gefunden, aber bin dadurch leider auch nicht weitergekommen

    grüße

    Einmal editiert, zuletzt von devildevil3 (18. Mai 2007 um 22:14)

    • Offizieller Beitrag

    Hallo!

    Probier mal ob so der Laufwerksbuchstabe vom Handy gefunden wird!

    Spoiler anzeigen
    [autoit]

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

    AutoIt Version: 3.2.3.6 (beta)
    Author: myName

    Script Function:
    Template AutoIt script.

    #ce ----------------------------------------------------------------------------
    ; Script Start - Add your code below here
    #include <file.au3>

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

    $laufwerk = ""
    $file = ""

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

    ; 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 $file <> "" Then
    MsgBox(0, "", $laufwerk)
    $jahr = @YEAR
    $monat = @MON
    $tag = @MDAY
    $datum = $jahr & "." & $monat & "." & $tag
    MsgBox(0, "", $datum)
    $mutti = @MyDocumentsDir & "\" & "Backup\Handy\Mutti\"
    $Pfad = $mutti & $datum
    MsgBox(0, "", $Pfad)
    DirCreate($Pfad)
    MsgBox(1, "Info", $laufwerk & " , " & $Pfad)
    DirCopy($laufwerk, $Pfad, 0)
    Else
    MsgBox(0, "", "Handy ist nicht angeschlossen!")
    EndIf

    [/autoit]

    Edit: $source in $file umbenannt!

  • danke erstmal, wie aber wird die variable ($Source) deklariert, dort meckert mich das Script dann an

    noch eine frage, ist es in irgeneiner Form nochglich Bild Infos herauszufiltern

    => habe ein Sonyericson K800 (meine Mutter auch, für die es haupsächlich ist), wenn ich dort Bilder mache, alle auf den PC spiele, und von Handy lösche geht die Dateinummer wieder auf 000001

    => bei der nächsten Sicherung Überschriebt es also die Bilder

    wenn ich für jede Sicherung ein neues Datum anlege, häufen sich die doppelten Dateien unter Musik etc

    von daher wäre es praktisch wenn das Script aus den Bild das erstelldatum ausließt und für dieses das Verzeichnis anlegt sprich
    bild wurde am 18.05.07 aufgenommen => kommt ins verzeichnis 2007.05.18

    die reihenfolge wegen der übersicht in Explorer

    geht das zu realisieren

    wird zwar was größeres wird aber für einige interessant sein


    könnte dann so aussehen

    ****\Mutti\DCIM\100MSDCF\Datum der Bilder\
    ****\Mutti\musik\
    ****\Mutti\other\

    das wäre ein sich lohnendes Script

    gte nacht und danke

    • Offizieller Beitrag

    Hallo!

    Ich den Fehler im Scirpt behoben, Sorry!

    Um die Bilder ins richtige Verzeichnis zu sortieren muss aus jedem Bild die Information augelesen werden s. hier.

    Eine andere Möglichkeit wäre einfach den Dateinamen zu ändern wenn ein Bild mit dem Namen schon existiert.

  • moin

    also zudeinen Script spuckt der Fehler aus wenn kein Handy angesteckt ist kein Problem, kann man dem Bentzer dann eine MsgBox ausgeben
    EDIT ich sehe gerade de funktion ist ingeaut, warum beendet sich das script dann aber ohne meldung, nachforschung beginnt ;)

    Probleme wo ich noch habe ist wegen dem Datum Geschichte

    man muss ja eine Datei auswählen, Problem ist wie wähle ich 50und mehr aus?

    man hat zwr die möglichkeit 50 auszuwählen , aber dann spnnt der rest ds Scriptes

    muss mich noch ein wenig durchkämpfen, eventuell eine liste mit den dateipfaden die nach und nach abgearbeit wird ?(

    Einmal editiert, zuletzt von devildevil3 (19. Mai 2007 um 11:23)

    • Offizieller Beitrag

    Ich habe das Script noch mal geändert, probier mal ob die Meldung jetzt ausgegeben wird!

    Edit:
    Wegen dem anderen Problem solltest Du den Code mal posten!

  • ok jetzt wird die Meldung ausgegeben

    danke dafür

    hier das teilweiße angepasst Script aus dem Beispiel

    Spoiler anzeigen
    [autoit]


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

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

    AutoIt Version: 3.2.3.6 (beta)
    Author: myName

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

    Script Function:
    Template AutoIt script.

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

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

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

    ; Script Start - Add your code below here

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

    #include "image_get_info.au3"
    $file = FileOpenDialog("Please select file", "", "Image files (*.jpg;*.tif;*.gif;*.bmp;*.png)");,1+4);
    If @error Then Exit
    $aInfo = _ImageGetInfo($file)
    If @error Then
    MsgBox (0, "Error", "Can't open file.")
    Exit
    Endif

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

    $Datum = _imagegetparam($Ainfo,"DateTime")
    $Datum = StringTrimRight($Datum,8)

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

    MsgBox(0,"Datum",$Datum)
    MsgBox (0, "All Picture Info", $aInfo)
    MsgBox (0, "Only Width and Height", _ImageGetParam($aInfo, "Width") & "x" & _ImageGetParam($aInfo, "Height"))

    [/autoit]


    das 1+4 in Kommentar ist eben das um alles zu markieren, bringt aber mit den restlichen Script nichts

    gibts was besseres außer die daten auflisten zu lassen?

    • Offizieller Beitrag

    Hi,

    vielleicht hilft dir dies ja auch?

    Spoiler anzeigen
    [autoit]

    $strComputer = "."
    $objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\cimv2")

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

    $colEvents = $objWMIService.ExecNotificationQuery _
    ("Select * From __InstanceOperationEvent Within 5 Where " _
    & "TargetInstance isa 'Win32_LogicalDisk'")

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

    While 1
    $objEvent = $colEvents.NextEvent
    If $objEvent.TargetInstance.DriveType = 2 Then
    Select
    Case $objEvent.Path_.Class()="__InstanceCreationEvent"
    Consolewrite("Drive " & $objEvent.TargetInstance.DeviceId & " has been added." & @CR)
    Case $objEvent.Path_.Class()="__InstanceDeletionEvent"
    Consolewrite("Drive " & $objEvent.TargetInstance.DeviceId & " has been removed."& @CR)
    EndSelect
    EndIf
    WEnd

    [/autoit]

    So long,

    Mega

  • sers

    das ist auch nicht schlecht, er lister halt alle Laufwerke auf die hinzukommen, oder entfernt werden

    aber mit der anderen Methode, gehe ich sicher ob ich das richtige Laufwerk ansteuere(wegen der Sache mit dem bookmarks.url)

    aber dennoch danke, dafür habe sicher auch mal eine Verwendung, sogar eventuell hier in diesen Script

    danke

  • Zitat

    Original von bernd670
    Sei gegrüßt Alina!

    Wenn $mutti gleich $Monikai wäre müsste vor "$Pfad = $mutti&$datum" dann $mutti = $Monikai stehen, tut es aber nicht! ;)

    Es würde die Sache halt einfacher machen wenn devildevil3 das Script posten würde, dass er benutzt.

    Hallo Bernd.

    Sollte doch Mutti die gleiche Variable sein wie Monika?
    Also Mütter habe es echt hart. Werden sie doch bei den entwicklenden (Entwickler) Männern als Variable dargestellt. Naja, alles wird halt moderner und aus der früheren Hausmutti wurde schon mal eine Variable.
    Bin voll am weglachen, bei dem Gedanken dieses sein Realität.
    :rofl: tot lacht :rofl:

    LG Lina

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • sodale habe ein wenig gebastelt

    für die Bilder hole ich mir das Datum aus den Bilder Infos, für die Videos mit filegettime+2Stunden, damit es der Wahrheit entspricht ka warum immer 2 Stunden zu wenig sind

    habe mich entschieden das ich die Bilder umbenennen möchte, dies geht mit filecopy halt zb

    I:\DCIM\100MSDCF\DSC00001.jpg nach
    D:\Eigene Dateien\Backup\Handy\Mutti\DCIM\100MSDCF\2007.05.18<-->11.59.21.jpg
    das datum in eine Variable, die für jedes Bild geändert wird
    Problem ist dann noch wie wähle ich alle daten aus, die dann kopiert werden, mit der richtigen zeit, zz ist nur das Grundgerüst

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    #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]
    $file = $laufwerk & "\webpage\bookmarks\Sony Ericsson.url"
    If FileExists($file) Then ExitLoop
    $laufwerk = ""
    $file = ""
    Next

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

    If $file <> "" Then
    $Video = $laufwerk &"\DCIM\100MSDCF\*.3gp";eventuell So
    $Bilder = $laufwerk &"\DCIM\100MSDCF\*.jpg"; Eventuel so^

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

    MsgBox(0,"",$Video)
    MsgBox(0, "", $laufwerk)
    $file = FileOpenDialog("Please select file", "", "Handy aufnahmen(*.3gp;*.jpg;*.tif;*.gif;*.bmp;*.png)");,1+4);
    If @error Then Exit
    $aInfo = _ImageGetInfo($file)
    If @error Then
    MsgBox (0, "Error", "Can't open file.")
    Exit
    Endif

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

    ;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)
    EndIf

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

    ;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& "."
    MsgBox(0,"Info",$UDatum&"<-->"& $UZeit)

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




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

    [/autoit]

    bis jetzt setzt er nur nen Pfad , und gibt die richtigen zeiten in meinen Format aus

  • Zitat

    Original von peethebee
    Hi!

    2h zuwenig, weil Zeit in GMT, nehme ich mal an.

    peethebee

    dachte ich schon, aber 2 stunden passt mit der zeit aus dem bild überein, nur wie gesagt bei filegettime 2 stunden zu zeitig, komisch warum das handy das nicht richtig macht ?(, ich mien in foto stehts auch richtig


    edit habs jetzt fast

    Spoiler anzeigen
    [autoit]


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

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

    AutoIt Version: 3.2.3.6 (beta)
    Author: myName

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

    Script Function:
    Template AutoIt script.

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

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

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

    ; Script Start - Add your code below here

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

    #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]
    $file = $laufwerk & "\webpage\bookmarks\Sony Ericsson.url"
    If FileExists($file) Then ExitLoop
    $laufwerk = ""
    $file = ""
    Next

    [/autoit] [autoit][/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\Thomas\DCIM\100MSDCF\"
    ;hier werden die bilder und videonamen geholt
    While 1
    $datei = FileReadLine($dateiliste)
    ;-------------------------------------------------------------------------
    $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)
    Filecopy($file,$dest2,9)
    If @error = 0 Then
    MsgBox (0, "Error", "Fehler")
    Endif

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

    wend
    EndIf ;von Zeile 32

    [/autoit]

    Problem er kopiert nix

    Einmal editiert, zuletzt von devildevil3 (24. Mai 2007 um 22:32)