Inhalt eines USB Sticks kopieren

  • Hallo :)
    Ich möchte gerade ein kleines Script machen, das wenn ein USB Stick eingesteckt wird, alle Datein & Ordner in einen Ordner auf meiner Festplatte kopiert.
    Mit dem Erkennen, dass einer da ist, wie viele und welcher da ist, und dem Kopieren der Datein habe ich kein Problem(falls jemand interessiert ist, kann ich die paar Zeilen hier auch eben schreiben), nur krieg ich das Kopieren von Ordnern nicht hin..
    Filecopy hat ja Wildcards, aber Dircopy nicht.

    Code
    dircopy("F:",@desktopdir)


    geht auch nicht, und

    Code
    filecopy("F:/*/*,@desktopsdir)


    auch nicht. kann mir jemand helfen ? :)

    hier mal mein script:

    Spoiler anzeigen

    [PHP]hotkeyset("{f1}","_exit")
    while sleep(100)
    $drives = DriveGetDrive("REMOVABLE")
    if not @error = 1 then
    $drivesl = ubound($drives) -1
    for $i=1 to $drivesl
    filecopy($drives[$i]&"\*",@desktopdir & "\Stick",0);kopiert alle datein die direkt auf dem stick sind, desswegen wildcards :D
    dircopy($drives[$i],@desktopdir & "\Stick",0);geht nicht. $drives[$i] ist z.b. "F:" ohne "\"
    msgbox(0,"",$drives[$i]&" wurde kopiert")
    next
    Exit
    EndIf
    WEnd

    func _exit()
    ExitEndFunc[/code]

    4 Mal editiert, zuletzt von v1Dr333s (30. November 2012 um 16:54) aus folgendem Grund: hab es selber raus gekriegt, bei bedarf verschicke ich das script gerne per pn :)

  • Für was brauchst du Wildcards, wenn du so oder so alles kopieren willst?
    Außerdem solltest du dir die Hilfe zu DirCopy() nochmal genau durchlesen, da steht nämlich, dass hinter den Pfaden KEIN Backslash sein draf... ;)

    LG
    Christoph :)

  • hattes nicht mehr im kopf, auch ohne backslash gehts nicht..
    ich füg mein script mal oben ein..

  • ;)

    Spoiler anzeigen
    [autoit]

    Local $aDriveList, $sSubDir, $sBackupDir = @ScriptDir&"\Backup\"

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

    If Not FileExists($sBackupDir) Then DirCreate($sBackupDir)

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

    While 1=1
    $aDriveList = DriveGetDrive("REMOVABLE")
    If IsArray($aDriveList) Then
    For $i = 1 To $aDriveList[0]
    ConsoleWrite("Kopiere Laufwerk "&$aDriveList[$i] & "..." & @LF)
    $sSubDir = $sBackupDir&StringTrimRight($aDriveList[$i],1)
    If FileExists($sSubDir&"\") Then DirRemove($sSubDir&"\")
    $iCopy = DirCopy($aDriveList[$i],$sSubDir)
    If $iCopy Then
    ConsoleWrite("Erfolgreich kopiert!" & @LF)
    Else
    ConsoleWrite("Fehler beim Kopieren!" & @LF)
    EndIf
    Next
    EndIf
    Sleep(100*1000)
    WEnd

    [/autoit]

    LG
    Christoph :)