Автор Тема: Автоматическое копирование с USB  (Прочитано 14897 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн MusicMan_08 [?]

  • Новичок
  • *
  • Сообщений: 28
  • Репутация: 0
  • Пол: Мужской
    • Награды
Добрый день, нашел в сети скрипт, который позволяет сделать бекап с вставленного USB, но у меня почему-то не запускается...
Может быть кто-нибудь знает, как допилить его - чтобы была возможность назвать директорию, куда будет происходить копирование?
Код: AutoIt [Выделить]
Dim $DBT_DEVICEARRIVAL = "0x00008000"
Dim $DBT_DEVICECOMPLETEREMOVAL = "0x00008004"
Dim $USB_ATTENTION = "0x00000007"
Dim $WM_DEVICECHANGE = 0x0219
Dim $Drives
Dim $Drive_Type = "ALL"  ; Set to ALL because some USB Drives are detected as Fixed Disks, and we don't want to miss those
Dim $WATCH = False
Dim $MyDrive = "STUFF"

;Get Initial List of Drives to Check Against
UpdateDrives()
;Setup The GUI to watch for the DeviceChange Event
GUICreate("")
GUIRegisterMsg($WM_DEVICECHANGE, "DeviceChange")
Func DeviceChange($hWndGUI, $MsgID, $WParam, $LParam)
    Switch $WParam
        Case $USB_ATTENTION
        ; This only happens when USB drives are inserted, so I use it to tell the difference between these and CDROMs
            $WATCH = True
        Case $DBT_DEVICECOMPLETEREMOVAL
        ; Whenever a Drive is Removed, Update the Drive List
            UpdateDrives()
        Case $DBT_DEVICEARRIVAL
        ; A drive was inserted
        ; Use $WATCH to tell if this was a CDROM or USB
        ; $WATCH = True, USB
        ; $WATCH = False, CDROM
            If $WATCH = True Then
            ; New USB Drive Was Detected, Time to Find it's Letter
                $New = FindNewDrive(); $New now has the Drive Letter of our New Drive, so USE IT!!!
                $Label = DriveGetLabel($New)
                If $Label == $MyDrive Then
                    MsgBox(4096, "Info", "My Drive has been Inserted, Backup My Files!")
                EndIf
            ; Now Reset Drive List so more insertions can also be detected accurately
                UpdateDrives()
            EndIf
    EndSwitch
EndFunc  ;==>DeviceChange

; This just jumps through the new Drive List, comparing them until it finds the entry that is in the new one that isn't in the old one
Func FindNewDrive()
    $Temp = DriveGetDrive( "REMOVABLE" )
    For $i = 1 to $Temp[0]
        $Old = False
        For $j = 1 to $DRIVES[0]
            If $DRIVES[$j] == $Temp[$i] Then $Old = True
        Next
        If $Old == False Then Return $Temp[$i]  
    Next
EndFunc  ;==>FindNewDrive

; Just to keep things neat, and so if Variables Ever Change, this makes updating easier
Func UpdateDrives()
    $Drives = DriveGetDrive( $Drive_Type )
EndFunc  ;==>UpdateDrives

; Main Loop to Keep the Program Open
; No Real Way of ending this program, except for just killing the process
; Which is what I want, an always on backup for my drive every time I insert it
While 1
    $GuiMsg = GUIGetMsg()
; This is needed because the watch event above not only triggers before a USB Drive is inserted/removed,
; but also AFTER insertion too, and if not reset, a subsequent CD insertion will trigger it again.
; So, every second, we reset $WATCH, to keep things clean
    Sleep (1000)
    $WATCH = False
WEnd




Версия AutoIt: v3.3.10.2

Описание:

Примечания:
« Последнее редактирование: Март 27, 2014, 11:00:15 от MusicMan_08 »

Русское сообщество AutoIt

Автоматическое копирование с USB
« Отправлен: Март 27, 2014, 10:28:55 »

Оффлайн alex33 [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1359
  • Репутация: 171
  • Пол: Мужской
    • alekssamos ВКонтакте
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Автоматическое копирование с USB
« Ответ #1, Отправлен: Март 27, 2014, 10:54:21 »
MusicMan_08, вставь код AutoIt в соответствующие теги

Оффлайн Ganibal95 [?]

  • GreenBytes
  • AutoIt Гуру
  • *****
  • Сообщений: 865
  • Репутация: 236
  • Пол: Мужской
  • GreenBytes
    • GreenBytes
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Автоматическое копирование с USB
« Ответ #2, Отправлен: Март 27, 2014, 15:16:21 »
MusicMan_08
Вообще не вижу в нем копирования, мне кажется легче написать код с 0, дабы разбирать этот бред.

Оффлайн WSWR [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 928
  • Репутация: 351
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Автоматическое копирование с USB
« Ответ #3, Отправлен: Март 27, 2014, 15:51:03 »
MusicMan_08

(нажмите для показа/скрытия)

Русское сообщество AutoIt

Re: Автоматическое копирование с USB
« Ответ #3 Отправлен: Март 27, 2014, 15:51:03 »

Оффлайн MusicMan_08 [?]

  • Новичок
  • *
  • Сообщений: 28

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
Re: Автоматическое копирование с USB
« Ответ #4, Отправлен: Март 27, 2014, 16:45:12 »
WSWR
Огромное спасибо! Возникло несколько вопросов:
1) Я вставляю одновременно 4 флешки (в скрипте прописываю буквы для этих флешек) и копирование начинается с одной, потом с другой и т.д. по очереди. Можно ли, чтобы копирование шло одновременно и при выборе путей сохранения было очевидно, какую флешку в какой путь я сохраняю?
2) Как организовать проверку, что копирование прошло удачно или неудачно?

Оффлайн WSWR [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 928
  • Репутация: 351
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Автоматическое копирование с USB
« Ответ #5, Отправлен: Март 27, 2014, 17:06:28 »
MusicMan_08
На счет одновременного копирования посмотри эту UDF:
http://autoit-script.ru/index.php/topic,3049.0.html
Там примеры хорошие

Можно свое окно GUI создать, и в нем можно четыре прогресс-бара сделать, с подписями, что и куда копируется.

Оффлайн MusicMan_08 [?]

  • Новичок
  • *
  • Сообщений: 28

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
Re: Автоматическое копирование с USB
« Ответ #6, Отправлен: Март 27, 2014, 23:20:25 »
Дело в том, что имеется хаб на 4 флешки - вставляем последовательно, когда вставишь - определяются все 4 разом, так что пути сохранения нужно ввести сразу для 4-х флешок, чтобы не отвлекаться потом на каждую флешку... Да и процесс может затянуться на долго и сидеть ждать, когда одна откопируется, потом указать путь для следующей очень муторно.
Процесс представляю примерно так: вставляешь 4 флешки, выскакивает сообщение куда сохранить флешку 1 - выбрал, куда сохранить флешку 2 - выбрал и т. Пошло копирование с прогресс баром, по окончании какое-нибудь уведомление.

Оффлайн WSWR [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 928
  • Репутация: 351
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Автоматическое копирование с USB
« Ответ #7, Отправлен: Март 28, 2014, 00:50:48 »
MusicMan_08

Как-то так:

(нажмите для показа/скрытия)

Не проверял
« Последнее редактирование: Март 28, 2014, 01:26:24 от WSWR »

Русское сообщество AutoIt

Re: Автоматическое копирование с USB
« Ответ #7 Отправлен: Март 28, 2014, 00:50:48 »

Онлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2468
  • Репутация: 424
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Автоматическое копирование с USB
« Ответ #8, Отправлен: Март 28, 2014, 02:01:15 »
MusicMan_08  [?]
Цитировать
Да и процесс может затянуться на долго и сидеть ждать, когда одна откопируется, потом указать путь для следующей очень муторно.
могу в свою очередь предложить другую функцию копирования - http://autoit-script.ru/index.php/topic,13191.0.html
какие возможности:
может копировать папки и файлы.
можно передавать в функцию массив путей. то есть составляешь массив откуда - куда четыре раза(к примеру) и функция копирует нужные файлы в нужном направлении.
отображает процесс копирование
сразу можно настроить на перезапись файлов
и т.д.
естественно, ввиду ограничения языка, одновременно не копирует. только последовательно. но при копировании небольшого объема файлов разница будет ничтожна. тем более при одновременном копировании скорость не возрастает. в этом можно убедиться экспериментально. запусти несколько копий системного копирования. увидишь как резко упадет скорость
Были времена, когда солнце было ярче, трава зеленее, а водка сорокоградуснее

Оффлайн MusicMan_08 [?]

  • Новичок
  • *
  • Сообщений: 28

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
Re: Автоматическое копирование с USB
« Ответ #9, Отправлен: Март 28, 2014, 17:20:06 »
WSWRjoiner
Спасибо за варианты!
Попробую во всем этом разобраться

Ребята, вот этот вариант мне очень подходит (нашел по ссылке от joiner)
Код: AutoIt [Выделить]
#include <FileOperations.au3>
#include <File.au3>

$Form1 = GUICreate("Form1", 491, 128, 360, 419)
$Progress1 = GUICtrlCreateProgress(24, 32, 422, 17)
$Button1 = GUICtrlCreateButton("Start", 50, 72, 75, 25)
$Button2 = GUICtrlCreateButton('Stop', 150, 72, 75, 25)
$Button3 = GUICtrlCreateButton('Pause', 250, 72, 75, 25)
GUISetState(@SW_SHOW)

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case -3
            Exit
        Case $Button1
            ;$sourch = FileSelectFolder('', '', 1 + 2 + 4, '', $Form1); 3-4
            $sourch = FileOpenDialog('', '', '(*.*)', 1 + 4, '', $Form1) ; 3-4
            $dest = FileSelectFolder('', '', 1 + 2 + 4, '', $Form1);
            ;$dest = FileSaveDialog('', '', '(*.*)', 16, '', $Form1);
            $ret = _CopyDirCopyFile($sourch, $dest, $Progress1, 1, 1, $Button2, $Button3)
            ConsoleWrite($ret & @CRLF)
    EndSwitch
WEnd

Func _CopyDirCopyFile($FileSourch, $FileDest, $ProgressBar = '', $FolderCopy = 1, $FileCopy = 1, $ButtonFuncStop = '', $ButtonPauseFunc = '')
    If Not $FileSourch Then Return 1
    If Not $FileDest Then Return 2
    Global $ButtonStop = $ButtonFuncStop, $ButtonPause = $ButtonPauseFunc,$ExitFunc = 0,$Pause = 0
    Local $s = 4096, $a = 1, $b = 1, $size_all = 0, $flag = 0, $DataButtonPause = GUICtrlRead($ButtonPauseFunc)
    Dim $szDrive, $szDir, $szFName, $szExt, $Drive, $Dir, $FName, $Ext
    $pathcheck = _PathSplit($FileDest, $Drive, $Dir, $FName, $Ext)
    If $pathcheck[1] = '' Then Return 4
    $var_string = StringReplace($FileSourch, "|", '\', 1)
    $path = _PathSplit($var_string, $szDrive, $szDir, $szFName, $szExt)
    $attrib_fd = FileGetAttrib($FileSourch)
    $fd_s = StringInStr($attrib_fd, 'D')
    If Not $fd_s = 0 Then
        $flag = 1
        $dir_name = StringRegExpReplace($FileSourch, '.*\\', '')
        Select
            Case $FolderCopy = 0
                If FileExists($FileDest & '\' & $dir_name) Then
                    $dirname = $FileDest & '\' & $dir_name & '_' & @SEC & @MSEC
                    $result = _FO_FileSearch($FileSourch, '*', True, 125)
                    If @error Then
                        $dircopy = DirCopy($FileSourch, $dirname)
                        If $dircopy = 0 Then
                            Return 3
                        Else
                            GUICtrlSetData($ProgressBar, 100)
                            Sleep(1000)
                            GUICtrlSetData($ProgressBar, '')
                            Return 0
                        EndIf
                    EndIf
                Else
                    $dirname = $FileDest & '\' & $dir_name
                    $result = _FO_FileSearch($FileSourch, '*', True, 125)
                    If @error Then
                        $dircopy = DirCopy($FileSourch, $dirname)
                        If $dircopy = 0 Then
                            Return 3
                        Else
                            GUICtrlSetData($ProgressBar, 100)
                            Sleep(1000)
                            GUICtrlSetData($ProgressBar, '')
                            Return 0
                        EndIf
                    EndIf
                EndIf
            Case $FolderCopy = 1
                $dirname = $FileDest & '\' & $dir_name
                $result = _FO_FileSearch($FileSourch, '*', True, 125)
                If @error Then
                    $replacepath = StringReplace($path[1] & $path[2], '\', '', -1)
                    $compare = StringCompare($FileDest, $replacepath)
                    If $compare = 0 Then
                        Return 3
                    Else
                        $dircopy = DirCopy($FileSourch, $dirname, 1)
                        If $dircopy = 0 Then
                            Return 3
                        Else
                            GUICtrlSetData($ProgressBar, 100)
                            Sleep(1000)
                            GUICtrlSetData($ProgressBar, '')
                            Return 0
                        EndIf
                    EndIf
                Else
                    $replacepath = StringReplace($path[1] & $path[2], '\', '', -1)
                    $compare = StringCompare($FileDest, $replacepath)
                    If $compare = 0 Then
                        Return 3
                    EndIf
                EndIf
        EndSelect
    Else
        $flag = 2
        $replace = StringReplace($var_string, '|', '*' & $path[1] & $path[2])
        $result = StringSplit($replace, '*')
        If $result[0] = 1 Then
            If FileExists($result[1]) = 0 Then
                Return 1
            EndIf
        EndIf
        $attrib_f = FileGetAttrib($FileDest)
        $f_s = StringInStr($attrib_f, 'D')
    EndIf
    For $i = 1 To $result[0]
        $size = FileGetSize($result[$i])
        $size_all += $size
    Next
    $round = Ceiling($size_all / $s)
    $step = Ceiling($round / 100)
    $z = 0
    $x = 0
    GUIRegisterMsg(0x0111, 'WM_COMMAND')
    For $r = 1 To $result[0]
        If $Pause = 1 Then
            GUICtrlSetData($ButtonPause, 'Proceed')
            While 1
                If $Pause = 0 Then
                    GUICtrlSetData($ButtonPause, $DataButtonPause)
                    ExitLoop
                EndIf
                If $ExitFunc = 1 Then
                    GUICtrlSetData($ButtonPause, $DataButtonPause)
                    ExitLoop
                EndIf
                Sleep(100)
            WEnd
        EndIf
        If $ExitFunc = 1 Then
            GUICtrlSetData($ProgressBar, '')
            Return 6
        EndIf
        Select
            Case $flag = 1
                Select
                    Case $FileCopy = 0
                        If FileExists($dirname & StringReplace($result[$r], $FileSourch, '', 1)) Then
                            $filenamestring = StringRegExpReplace($dirname & StringReplace($result[$r], $FileSourch, '', 1), '.*\\', '')
                            $pathreplace = StringReplace($dirname & StringReplace($result[$r], $FileSourch, '', 1), $filenamestring, '', -1)
                            $filedestname = $pathreplace & @SEC & @MSEC & '_' & $filenamestring
                        Else
                            $filedestname = $dirname & StringReplace($result[$r], $FileSourch, '', 1)
                            If FileExists($filedestname) Then FileSetAttrib($filedestname,'-R')
                        EndIf
                    Case $FileCopy = 1
                        $filedestname = $dirname & StringReplace($result[$r], $FileSourch, '', 1)
                        If FileExists($filedestname) Then FileSetAttrib($filedestname,'-R')
                EndSelect
            Case $flag = 2
                If Not $f_s = 0 Then
                    Select
                        Case $FileCopy = 0
                            If FileExists($FileDest & '\' & StringRegExpReplace($result[$r], '.*\\', '')) Then
                                $filenamestring = StringRegExpReplace($result[$r], '.*\\', '')
                                $pathreplace = StringReplace($FileDest, $filenamestring, '', -1)
                                $filedestname = $pathreplace & '\' & @SEC & @MSEC & '_' & $filenamestring
                            Else
                                $filedestname = $FileDest & '\' & StringRegExpReplace($result[$r], '.*\\', '')
                                If FileExists($filedestname) Then FileSetAttrib($filedestname,'-R')
                            EndIf
                        Case $FileCopy = 1
                            $filedestname = $FileDest & '\' & StringRegExpReplace($result[$r], '.*\\', '')
                            If FileExists($filedestname) Then FileSetAttrib($filedestname,'-R')
                    EndSelect
                Else
                    $filedestname = $FileDest
                EndIf
        EndSelect
        $hFile = FileOpen($result[$r], 16)
        If $hFile = -1 Then
            $z = $z + 1
            ContinueLoop
        EndIf
        $folderdestname = FileOpen($filedestname, 2 + 8 + 16)
        If $folderdestname = -1 Then
            FileClose($hFile)
            $x = $x + 1
            ContinueLoop
        EndIf
        While 1
            If $Pause = 1 Then
                GUICtrlSetData($ButtonPause, 'Proceed')
                While 1
                    If $Pause = 0 Then
                        GUICtrlSetData($ButtonPause, $DataButtonPause)
                        ExitLoop
                    EndIf
                    If $ExitFunc = 1 Then
                        GUICtrlSetData($ButtonPause, $DataButtonPause)
                        ExitLoop
                    EndIf
                    Sleep(100)
                WEnd
            EndIf
            If $ExitFunc = 1 Then
                GUICtrlSetData($ProgressBar, '')
                FileClose($hFile)
                FileClose($folderdestname)
                FileDelete($filedestname)
                Return 6
            EndIf
            $sChars = FileRead($hFile, $s)
            If @error = -1 Then
                ExitLoop
            ElseIf @error = 1 Then
                ExitLoop
            EndIf
            $file_w = FileWrite($folderdestname, $sChars)
            If $file_w = 0 Then ExitLoop
            If $b = $step * $a Then
                GUICtrlSetData($ProgressBar, $a)
                $a = $a + 1
            EndIf
            $b = $b + 1
            If $b = $round Then
                GUICtrlSetData($ProgressBar, 100)
            EndIf
        WEnd
        FileClose($hFile)
        FileClose($folderdestname)
        $attrib = FileGetAttrib($result[$r])
        FileSetAttrib($filedestname, $attrib)
    Next
    $emptyfolder = _FO_SearchEmptyFolders($FileSourch, 1)
    If Not @error Then
        For $i = 1 To $emptyfolder[0]
            $pathdestreplace = StringReplace($emptyfolder[$i], '\', '', -1)
            $emptyfoldername = $dirname & StringReplace($pathdestreplace, $FileSourch, '', 1)
            DirCreate($emptyfoldername)
        Next
    EndIf
  GUIRegisterMsg(0x0111, '')
    If $z = 0 And $x = 0 Then
        GUICtrlSetData($ProgressBar, 100)
        Sleep(1000)
        GUICtrlSetData($ProgressBar, '')
        Return 0
    ElseIf $z = UBound($result) - 1 Or $x = UBound($result) - 1 Then
        Return 4
    Else
        GUICtrlSetData($ProgressBar, 100)
        Sleep(1000)
        GUICtrlSetData($ProgressBar, '')
        Return 5
    EndIf
EndFunc   ;==>_CopyDirCopyFile

Func WM_COMMAND($hWnd, $Msg, $wParam, $lParam)
    Local $nNotifyCode = BitShift($wParam, 16)
    Local $nID = BitAND($wParam, 0xFFFF)
    Switch $nNotifyCode
        Case 0
            Switch $nID
                Case $ButtonStop
                    $ExitFunc = 1
    GUIRegisterMsg(0x0111, '')
                Case $ButtonPause
                    If $Pause = 0 Then
                        $Pause = 1
                    Else
                        $Pause = 0
                    EndIf
            EndSwitch
    EndSwitch
    Return 'GUI_RUNDEFMSG'
EndFunc   ;==>WM_COMMAND
 

Только вот, если можно - то подскажите пожалуйста как доработать до такого:

+ не надо выбирать откуда копировать, это уже ясно из названия формы (т.е. USB1, USB2...)
+ еще в идеале хотелось бы чтобы по кнопке start возникал путь с пресетами на сохранение файлов (пресет1=С:\folder1;...), ну или сбоку где-нибудь были пресеты сохранения фалов
+ ну и совсем круто было бы, чтобы добавлялась дата к пути сохранения
« Последнее редактирование: Март 28, 2014, 18:26:38 от MusicMan_08 »

Онлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2468
  • Репутация: 424
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Автоматическое копирование с USB
« Ответ #10, Отправлен: Март 29, 2014, 00:21:30 »
MusicMan_08
 ты взял тестовый вариант функции. финальный вариант  в первом сообщении под ссылкой "Исходник". За его работу я еще могу поручиться :)
насчет отображения имен файлов в окне, то смотри такой пример http://autoit-script.ru/index.php/topic,15135.0.html


Добавлено: Март 29, 2014, 09:12:15
MusicMan_08
вот пример, как можно сделать. только без автоопределения подключения.
подключаешь все нужные флешки к компу. запускаешь код
копирование будет происходить в общую папку C:\folder. в ней будут созданы подпапки с именами флешек. куда и будут скопированы данные
в окне будет отображаться прогресс копирования в виде полосы, процентов и имен файлов с полным путем копирования
https://cloud.mail.ru/public/a22ab2a581ea/copy_usb.au3
« Последнее редактирование: Март 29, 2014, 09:12:15 от joiner, Причина: Объединение сообщений »

Оффлайн MusicMan_08 [?]

  • Новичок
  • *
  • Сообщений: 28

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
Re: Автоматическое копирование с USB
« Ответ #11, Отправлен: Март 31, 2014, 18:30:36 »
Ребята, спасибо за ответы, но это немного не то, что мне надо, я попробовал разные варианты и ссылки, но:
я имею дело с SD картами, которые через переходники вставляются в USB, и имена у этих SD карт всегда разные, т.е привязать имена флешек к коду не видится возможным. SD карты используются на съемках и все время перед съемкой форматируются, все время меняется имя и ID.
Задача человека, который принимает эти SD карты со съемки - !!!в теории!!! вставить карту (USB), ввести номер SD (он на ней наклеен) и получить копию этой SD в папке, которая соответствует номеру SD-шки. То есть, если карта памяти имеет номер 1 - то она должна быть скопирована, к примеру, C:\folder1; если карта памяти номер 2 - то C:\folder2.
Было бы круто, если вставляешь флешку (автоопределение) - выскакивает вопрос куда скопировать - вводишь цифру, и взависимости от нее изменяется путь копирования и копирование начинается. То есть минимум нажатий куда либо, подключить флешку и ввести номер.
Я извиняюсь, если запутал и не рассказал сразу подробности, но я думал это не будет очень важно, а как оказалось подходящих для меня вариантов не оказалось. Самому написать код под это дело для меня пока очень сложно.

Оффлайн WSWR [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 928
  • Репутация: 351
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Автоматическое копирование с USB
« Ответ #12, Отправлен: Март 31, 2014, 23:15:48 »
MusicMan_08
В теории можно определять, в какой usb порт вставлена флешка.
Т.е. флешку 1 надо вставить в порт 1, флешку 2 - в порт 2 и т.д.
Соответственно, не придется вводить никакие цифры.

Оффлайн MusicMan_08 [?]

  • Новичок
  • *
  • Сообщений: 28

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
Re: Автоматическое копирование с USB
« Ответ #13, Отправлен: Март 31, 2014, 23:19:50 »
Было бы идеально, если бы флешек было 4 штуки, а так у меня их 30. Пронумерованы соответственно от 1 до 30. А USB порта всего 4. Поэтому и ищу решение, чтобы вставить флешку и ответить на вопрос какой на ней номер, и в соответствии с этим копировать в нужную папку...

Онлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2468
  • Репутация: 424
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Автоматическое копирование с USB
« Ответ #14, Отправлен: Март 31, 2014, 23:20:52 »
MusicMan_08
тут все подходящие варианты. ты просто сам чуть недопонимаешь.
с номером  еще проще. плюс создание подпапки с датой копирования
авто определение это не обязательно тот код, который ты нашел. достаточно крутить поиск флешек в цикле.
если тебе надо полностью работоспособный код, то есть готовую программу, то надо писать все подробности.

WSWR, про порты это мудрено. проще в окне программы ввести номер флешки. вставил флешку, выскочило окно, ввел номер и нажал старт. все

если копировать большой объем данных, то при одновременном копировании будут тормоза системы. я уже писал это

Русское сообщество AutoIt

Re: Автоматическое копирование с USB
« Ответ #14 Отправлен: Март 31, 2014, 23:20:52 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
2 Ответов
3898 Просмотров
Последний ответ Июль 26, 2010, 15:07:28
от AxepoH
6 Ответов
4215 Просмотров
Последний ответ Март 14, 2012, 18:21:33
от AZJIO
10 Ответов
11887 Просмотров
Последний ответ Октябрь 27, 2012, 21:48:55
от parida01
0 Ответов
2334 Просмотров
Последний ответ Март 09, 2013, 17:16:39
от forc1k
7 Ответов
3661 Просмотров
Последний ответ Март 28, 2013, 03:01:20
от agikon
1 Ответов
3110 Просмотров
Последний ответ Апрель 11, 2013, 09:48:56
от madmasles
1 Ответов
1407 Просмотров
Последний ответ Май 02, 2014, 01:12:46
от joiner
14 Ответов
3951 Просмотров
Последний ответ Март 15, 2015, 19:19:17
от Numbot
1 Ответов
710 Просмотров
Последний ответ Март 24, 2016, 17:45:19
от Garrett
5 Ответов
151 Просмотров
Последний ответ Август 14, 2017, 13:27:09
от zz555