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

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

Оффлайн MusicMan_08 [?]

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

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
Re: Автоматическое копирование с USB
« Ответ #15, Отправлен: Март 31, 2014, 23:29:09 »
Цитировать
про порты это мудрено. проще в окне программы ввести номер флешки. вставил флешку, выскочило окно, ввел номер и нажал старт. все
Да, как раз вот такой вариант я и искал, наверное моя вина, что не смог объяснить это сразу...
Ну если знающие люди говорят, что материала, который здесь уже достаточно для осуществления поставленной задачи, тогда попробую соединить это в один скрипт, если конечно у меня получится...

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

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

Оффлайн MaximK [?]

  • Новичок
  • *
  • Сообщений: 33
  • Репутация: 5
  • Пол: Мужской
    • Награды
Re: Автоматическое копирование с USB
« Ответ #16, Отправлен: Март 31, 2014, 23:36:21 »
Твою задачу я бы разделил на два скрипта
первый скрипт весит в ожидании подключения флешки и при подключении флешки вызывает второй который спрашивает номер флешки и копирует файлы.

Пример скрипта который отслеживает подключение и показывает букву подключеной флешки

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

Пример второго скрипта возможно выложу завтра или попробуй переделать приведенные выше

Оффлайн MusicMan_08 [?]

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

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
Re: Автоматическое копирование с USB
« Ответ #17, Отправлен: Апрель 01, 2014, 00:03:45 »
MaximK
Очень удобное отображение в трее с названием буквы. Спасибо!

Оффлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2477
  • Репутация: 425
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Автоматическое копирование с USB
« Ответ #18, Отправлен: Апрель 01, 2014, 00:36:25 »
и все-таки можно использовать имена флешек. они при форматировании не удаляются. все тридцать флешек именовать номерами. тогда в системе они будут отображаться с именами-номерами. программа получает уведомление о подключении устройства, считывает label(имя флешки)и копирует в папку с соответствующим номером. и пользователю не нужно будет вводить номера. все будет проходить автоматом.
скрипт нужен один. копировать последовательно.
одну подключили или все четыре - не важно. но все можно реализовать в одном коде. и использовать слежение в цикле. можно не использовать код определения подключения. в данной ситуации это не критично


Добавлено: Апрель 01, 2014, 05:37:50
MusicMan_08
вот набросал тестовый вариант https://cloud.mail.ru/public/a22ab2a581ea/copy_usb.au3
программа не следит постоянно за подключением флешек..
на флешках есть номера - 1,2,3.....и так далее
значит в системе рабочие флешки переименовываем. правой кнопкой мыши на диске - переименовать. имена при форматировании не стираются
подключаем флешки (не важно сколько) к компу и запускаем скрипт.
он найдет все флешки и будет единый прогресс копирования с отображением процентов и путей.
копировать будет на диск С:\Video_usb
В этой папке будут созданы папки с именами(номерами) флешек, а внутри будут папки с именем даты и времени копирования.
в данном случае идея с висящим в ожидании флешек скриптом излишняя.
подключаем флешки, запускаем прогу. скопировалось, повторяем процедуру. два раза клацнуть мышкой это не трудно, но зато будешь понимать что делаешь

если идея понравится то доработаем нюансы
« Последнее редактирование: Апрель 01, 2014, 05:39:22 от joiner, Причина: Объединение сообщений »
Были времена, когда солнце было ярче, трава зеленее, а водка сорокоградуснее

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

Re: Автоматическое копирование с USB
« Ответ #18 Отправлен: Апрель 01, 2014, 00:36:25 »

Оффлайн MusicMan_08 [?]

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

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
Re: Автоматическое копирование с USB
« Ответ #19, Отправлен: Апрель 01, 2014, 23:12:46 »
joiner
Флешки, отформатированные с помощью видеокамеры, имеют названия типа "Съемный диск" - и почему-то все имеют ID что-то типа 0000-0000. Не знаю особенности это видеокамеры или еще какие-то особенности, но это факт. Если мы говорим про разные вещи - значит я не понял, что Вы имеете в виду...
За скрипт большое спасибо, копирование происходит и все наглядно - но вылезает несколько ошибок типа "Диск отсутствует, в устройстве нет диска \Device\Harddisk4\DR4", "Ошибка -4". Встречный вопрос, а как я пойму с какой флешки (номер) происходит копирование, к примеру, чтобы отключить/изъять уже скопированные, в скрипте это видно только в пути копирования, который можно успеть прочитать во время прогресс бара?
Вариант MaximK с отслеживанием подключения и показывания буквы подключенной флешки мне кажется классным и информативным, очень хочется его оставить...

Оффлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2477
  • Репутация: 425
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Автоматическое копирование с USB
« Ответ #20, Отправлен: Апрель 02, 2014, 00:05:34 »
MusicMan_08
еще ничего предложено не было. тебе показали как в трее появляется сообщение.
у тебя картридер, как я понял. он уже как устройство. значит воспринимается скриптом как диск, ты вставил одну флешку. скрипт составил список устройств, но по факту скопировать можно только с реально вставленной флешки. поэтому и появляется ошибка 4 - не все файлы скопированы. значение ошибок есть в описании функции.
в окно можно добавить дополнительное инфополе. где будут отображаться устройства, с которых произведено копирование полностью. это мелочь.
еще раз про скрипт http://autoit-script.ru/index.php/topic,16447.msg101597.html#msg101597
он всего лишь определяет подключенные устройства. не более того.
можно соединить с ним, но тогда нужно  будет, чтобы программа работала постоянно. не вижу смысла в этом.
если имена флешек меняются, то можно просто сортировать по дате копирования.
одна общая папка, а в ней папки с именами - дата и время копирования..
если ничего не подходит. то другого варианта у меня нет. :)


Добавлено: Апрель 02, 2014, 05:42:07
вот второй вариант. учитывающий, надеюсь, что к компу может быть подключен картридер,в котором не все слоты заняты. скрипт проверяет слоты на наличие файлов и формирует массив только из тех, в которые подключены носители с информацией на "борту"
скрипт сначала считывает имя флешки, если нет имени, то использует букву диска для именования конечной папки.
в окне добавлена строка, в которой будут отображаться системные буквы флешек, с которых уже скопирована информация.
картридера нет, проверить до конца не могу. но, вроде как, должно работать как задумано
http://autoit-script.ru/index.php?action=downloads;sa=view;down=375
« Последнее редактирование: Апрель 02, 2014, 05:44:01 от joiner, Причина: Объединение сообщений »

Оффлайн MusicMan_08 [?]

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

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
Re: Автоматическое копирование с USB
« Ответ #21, Отправлен: Апрель 02, 2014, 14:31:48 »
joiner
Цитировать
еще раз про скрипт Re: Автоматическое копирование с USB
он всего лишь определяет подключенные устройства. не более того.можно соединить с ним, но тогда нужно  будет, чтобы программа работала постоянно. не вижу смысла в этом.
Для меня как раз-таки важно, чтобы программа работала постоянно - фоном: предполагается, что человек, который наснимал материал (человек 20), сам приносит флешку (это может быть и ночью), сам копирует, то есть нужно по максимуму упростить действия. Вот почему изначально была выбрана схема ----- подключить флешку ----- ввести номер ------ все. Не сочтите за занудство, но если заставлять людей искать какой-то экзешник на рабочем столе или еще где-нибудь, нажимать потом куда-то, увидеть какие-то ошибки о подключении... Все это может вызвать определенные проблемы.
Цитировать
у тебя картридер, как я понял. он уже как устройство. значит воспринимается скриптом как диск, ты вставил одну флешку. скрипт составил список устройств, но по факту скопировать можно только с реально вставленной флешки
у меня 4 картридера по одному слоту для SD в каждом. Не все могут использоваться сразу.
Цитировать
если имена флешек меняются, то можно просто сортировать по дате копирования.
это точно не подойдет, так как это неинформативно. Поясню: в день к примеру проводится 12 съемок - как узнать в какой папке какой материал в итоге? В папке будет просто куча чисел, и это будет путаница. А если бы было как изначально задумано - то в папке к примеру 1 - материал с SD номер 1 и тд.
Цитировать
в окне добавлена строка, в которой будут отображаться системные буквы флешек, с которых уже скопирована информация.
Это реально удобно, спасибо!
Цитировать
если ничего не подходит. то другого варианта у меня нет.
Вы и так очень много помогли!

Оффлайн WSWR [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 928
  • Репутация: 351
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Автоматическое копирование с USB
« Ответ #22, Отправлен: Апрель 02, 2014, 14:46:42 »
MusicMan_08

А я бы сделал большое окно с номерами флешек (как на скрине)
Вставил флешку - нажал кнопку с номером - вместо нее появился прогресс-бар с отображением копирования

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

Re: Автоматическое копирование с USB
« Ответ #22 Отправлен: Апрель 02, 2014, 14:46:42 »

Оффлайн MusicMan_08 [?]

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

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
Re: Автоматическое копирование с USB
« Ответ #23, Отправлен: Апрель 02, 2014, 14:52:39 »
WSWR
Цитировать
А я бы сделал большое окно с номерами флешек (как на скрине)
Что-то не получается посмотреть скрин, по ссылке ошибка.

Оффлайн WSWR [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 928
  • Репутация: 351
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Автоматическое копирование с USB
« Ответ #24, Отправлен: Апрель 02, 2014, 14:57:49 »
MusicMan_08
Это пример
http://fotoifolder.ru/view_foto/i2-z_-u_vfn8/

Оффлайн MusicMan_08 [?]

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

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
Re: Автоматическое копирование с USB
« Ответ #25, Отправлен: Апрель 02, 2014, 15:04:39 »
WSWR
По-моему крутая идея, только я вот не пойму в теории:
вот я вставил 3 флешки разом - нажимаю на 1,3 и 5 (номера гипотетических флешек). Как скрипт сообразит, какая SD 1, какая 3, а какая 5? В этом случае нужно будет наверное вставлять по очереди?
Ну все-равно, пусть даже и так, это реально классно.

Оффлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2477
  • Репутация: 425
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Автоматическое копирование с USB
« Ответ #26, Отправлен: Апрель 02, 2014, 15:11:26 »
либо имена флешек постоянные либо меняются..значит нужно сделать чтобы были постоянные. только  тогда можно достичь эффекта.
чтобы программа висела в процессе это сделать не сложно. но еще раз скажу, если будут запускаться копии копирования, то с каждой копией скорость копирования будет падать. записывается ведь на один жесткий диск. и в итоге скорость будет равно что и при последовательном копировании.
MusicMan_08

ты можешь сделать так, чтобы имена карт не менялись? если да, то код, который я предложил будет работать.. только поставить его в цикле на отслеживание и все. подключил флешку, скрипт увидел ее и начал копировать.
но опять же. что с именем флешки? если оно меняется, то пользователю все равно придется в окне выбирать номер флешки. что будет соответствовать выбору папки, куда будет копироваться. если вариант с выбором папки тебя устроит, то все опять же не сложно сделать.
я поправлю скрипт
будет одно поле для ввода номера. и в общей папке будет создана папка с номером флешки, а в ней папки с именем даты съемки. так пойдет?


Добавлено: Апрель 02, 2014, 15:16:52
MusicMan_08  [?]
Цитировать
Как скрипт сообразит, какая SD 1, какая 3, а какая 5
вот про это и речь. когда дело с обычными флешками, то им можно назначить имена. а тут сложно. тут только буквы дисков для подключения
насчет запуска экзешника все равно нужно рассмотреть вариант. не думаю что люди настолько глупы, чтобы не найти на рабочем столе нужный ярлык и запустить прогу. все все равно слишком гладко не бывает
« Последнее редактирование: Апрель 02, 2014, 15:18:37 от joiner, Причина: Объединение сообщений »

Оффлайн MusicMan_08 [?]

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

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
Re: Автоматическое копирование с USB
« Ответ #27, Отправлен: Апрель 02, 2014, 15:25:18 »
joiner
Цитировать
ты можешь сделать так, чтобы имена карт не менялись?
Нет, это невозможно. SD карты перед съемкой обязательно должны быть отформатированы.
Цитировать
пользователю все равно придется в окне выбирать номер флешки. что будет соответствовать выбору папки, куда будет копироваться
да, это как раз то, что мне нужно, но выбор папки - это ведь не значит, что пользователь должен шариться по файловой системе и искать нужную папку. Было бы классно, если бы выбор папки соответствовал нажатию 1 кнопки.
Цитировать
будет одно поле для ввода номера. и в общей папке будет создана папка с номером флешки, а в ней папки с именем даты съемки. так пойдет?
более чем подойдет. А если к примеру в этот день будет создано еще одно копирование с этой же флешки, то поменяется только дата или будет создана папка с новым именем (я имею ввиду была папка 1, затем 1-1, 1-2...)? Хотелось бы, чтобы менялась только дата, а папки с номерами флешек были созданы единожды и более не менялись.

Оффлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2477
  • Репутация: 425
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Автоматическое копирование с USB
« Ответ #28, Отправлен: Апрель 03, 2014, 07:55:25 »
MusicMan_08
вобщем я переделал скрипт. склеил с кодом определения подключения.
суть работы:
скрипт постоянно висит в процессе слежения за подключением
при подключении флешки появится окно с предложением ввести номер флешки
если флешек будет несколько, то жмем "Добавить" и после этого подключаем еще флешку. опять появится окно. вводим номер. ну и так далее.
когда подключили последнюю или просто одну нужную флешку и ввели ее номер, жмем уже не "Добавить" а "Копировать".
Все данные с подключенных флешек будут скопированы в одну папку C:\Video_usb
в которой будут папки под номерами, соответствующими номерам флешек. в них будут подпапки уж с датой и временем копирования.
тестируй. код еще до конца не отрепетирован..нужны твои тесты. у меня все вроде сработало.
исходник

Оффлайн MusicMan_08 [?]

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

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
Re: Автоматическое копирование с USB
« Ответ #29, Отправлен: Апрель 03, 2014, 11:08:03 »
joiner
Спасибо за скрипт!
Если можно некоторые моменты:
1) можно после того как я нажму копировать сразу начиналось копирование, и не нужно было нажимать "Старт"?
2) можно ли так сделать, чтобы после ввода номеров флешек я мог нажать Enter и это соответствовало нажатию на кнопку "Копировать"?
3) можно ли сделать так, чтобы в папке с датой не было каталога с названием флешки, а сразу содержимое флешки?
4) я наверное ступил, когда просил сделать вначале номер флешки, а потом дату... Если например у меня 2 съемки в день, и я имею 30 номеров флешек - я должен пошариться по каждому номеру в поисках нужной мне даты. Если это не очень сложно будет для Вас, немогли бы Вы сделать так, чтобы в начале была дата копирования без времени (типа 01_01_2014), а в ней уже были номера флешек, и если одна и таже флешка использовалась несколько раз в день - то добавлять к номеру флешки какой-нибудь суффикс типа 1, 1-1, 1-2?
5) можно ли, чтобы в инфо-строке отображалось не буква флешки, а номер? Типа обработано флешки 1, 2 и т.д.?

А так скрипт супер, почти то, что я и хотел. Еще раз спасибо.
« Последнее редактирование: Апрель 03, 2014, 12:49:58 от MusicMan_08 »

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

Re: Автоматическое копирование с USB
« Ответ #29 Отправлен: Апрель 03, 2014, 11:08:03 »

 

Похожие темы

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