Что нового

Скопировать папку с флешки на компьютер

CRD

Новичок
Сообщения
57
Репутация
0
Версия AutoIt: 3.3.14.4

Описание: Скрипт должен создать на системном диске папку по указанному пути, после чего в нее скопировать файлы из папки на флешке.

Примечания: Имена дисков могут быть неизвестны. Путь к расположению папки задается в коде скрипта. Для примера, пусть это будет \Users\CRD\Downloads\Test_Script\

Благодарю.
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
скопировать файлы из папки на флешке.
все файлы или заданные пользователем ?
Если флешек обнаружится несколько, с какой копировать ?
 
Автор
C

CRD

Новичок
Сообщения
57
Репутация
0
Скрипт будет лежать на флешке, поэтому с определением откуда копировать не должно стать проблемой. В идеале конечно хочу его поставить на автозапуск при втыкании флешки, чтобы он сам запустился и как скопирует все файлы выдал сообщение "Готово". Копировать надо содержимое папки Docs, которая лежит на этой флешке.
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
Такой скрипт будет содержать всего одну строку, запускать его нужно из флешки :
Код:
If FileCopy(@ScriptDir&'\Docs\*.*',@UserProfileDir&'\CRD\Downloads\Test_Script\*.*',1+8) Then MsgBox(48,'','Готово !')
 
Автор
C

CRD

Новичок
Сообщения
57
Репутация
0
ra4o, спасибо большое. Работает! :beer:

Подскажи пожалуйста, что такое 1+8 ? Что-то в справке на нашел. И как мне добавить к примеру еще одну папку для копирования в него ?
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
в справке по функции смотрите параметр "flag"
flag [необязательный] Этот флаг указывает на поведение функции, в случае, если файлы уже существуют в каталоге назначения.
Может быть комбинацией следующих значений:
0 = (по умолчанию) не перезаписывать существующие файлы
1 = перезаписывать существующие файлы
8 = создавать дерево каталогов, если путь назначения не существует (см. примечания).
как мне добавить к примеру еще одну папку для копирования в него ?
вариантов масса - можно просто включить в скрипт две строки с нужными путями к папкам, можно все пути записать в массив и потом выполнять в цикле функцию копирования файлов, подставляя пути из массива итд , всё зависит от Вашей фантазии :smile:
 
Автор
C

CRD

Новичок
Сообщения
57
Репутация
0
К сожалению в данный момент не могу протестировать, но я правильно понимаю, что если делаем копирование еще одной строкой, то на выходе получаем следующий код:
Код:
If FileCopy(@ScriptDir&'\Docs\*.*',@UserProfileDir&'\CRD\Downloads\Test_Script\*.*',1+8) And 
(@ScriptDir&'\Job\Photo\*.*',@UserProfileDir&'\CRD\Downloads\Test_Script\Photo\*.*',1+8)
 Then MsgBox(48,'','Готово !')


Но пока набивал эти строки всплыл в голове вопрос, а если одной из папок не будет, что тогда ? :scratch:
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
В таком случае вот так :
Код:
If FileCopy(@ScriptDir&'\Docs\*.*',@UserProfileDir&'\CRD\Downloads\Test_Script\*.*',1+8) And _
FileCopy(@ScriptDir&'\Job\Photo\*.*',@UserProfileDir&'\CRD\Downloads\Test_Script\Photo\*.*',1+8) _
 Then MsgBox(48,'','Готово !')

Обратите внимание, что Вы не поставили название самой функции перед вторыми скобками и для переноса строки используйте пробел и символ подчёркивания "_"
если одной из папок не будет, что тогда ?
В этом варианте скопируется то , что будет , но сообщение "Готово" не появится.
 
Автор
C

CRD

Новичок
Сообщения
57
Репутация
0
Спасибо большое за помощь. Задача выполнены :beer:
 

zbz

Новичок
Сообщения
74
Репутация
1
а если запустить скрипт не из флешки, то как будет выглядит код (то есть надо найти нужную папку в разделах диска)?
 
Автор
C

CRD

Новичок
Сообщения
57
Репутация
0
zbz, если знаешь расположение файла и путь всегда один и тот же, то прописать до него путь ...
 

zbz

Новичок
Сообщения
74
Репутация
1
CRD сказал(а):
zbz, если знаешь расположение файла и путь всегда один и тот же, то прописать до него путь ...

буква диска всегда другая (вернее компы другие, где 2 где 4 раздела)
 
Автор
C

CRD

Новичок
Сообщения
57
Репутация
0
Макрос ScriptDir сам определяет букву привода относительно расположения файла, поэтому проблем не возникнет. У меня на компе у самого буквы время от времени меняются (то хард подключаю дополнительный, то привод), пока проблем не возникало.
 
Верх