Что нового

Одновременное копирование множества файлов и папок

Timerlan

Новичок
Сообщения
93
Репутация
0
Хотел бы узнать можно ли в AutoIt осуществить множественное копирование файлов и папок т.е вот например я хочу написать скрипт чтоб я его запускал и он одновременно закачивал файлы и папки на на все 50 компов. Просто я через DirCopy пробывал он копирует по очереди, т.е сперва на один потом на следущий и т.к. плиз помогите написать скрипт например хотя бы чтоб на 3 компа копировал одновременно. имя компов можете назвать произвольно.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,673
Репутация
2,486
Ответ аля copy - paste:

Код:
_DirCopy('C:\Src', 'D:\Dst')

Func _DirCopy($sSrc, $sDest, $iReplace = 0)
    Local $sReplace = ' /Y'

    If Not $iReplace Then
        $sReplace = ''
    EndIf

    Run('xcopy /H /E /C /I /S' & $sReplace & ' "' & $sSrc & '" "' & $sDest & '"', '', @SW_HIDE)
EndFunc



P.S.
Ответ на следующий вопрос - Нет.
 
Автор
T

Timerlan

Новичок
Сообщения
93
Репутация
0
Чет пока разобраться не могу в скрипте можешь описать подробнее. И еще можно ли добавить туда чтоб предварительно он удалял оттуда 2 папки???
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,673
Репутация
2,486
Timerlan [?]
можно ли добавить туда чтоб предварительно он удалял оттуда 2 папки?
Удалял?
Речь идёт ведь про копирование :scratch:.
 
Автор
T

Timerlan

Новичок
Сообщения
93
Репутация
0
ну сперва удалял на той машине куда копировать будет, а потом копировал. ну ладно это пока можно пропустить ты можешь написать комментарии к скрипту плиз не совсем понятно чет пока для меня я просто новичок в этом деле.
 
Автор
T

Timerlan

Новичок
Сообщения
93
Репутация
0
Код:
_DirCopy('C:\Src', 'D:\Dst') ; Тут я как понимаю указываем откуда и куда будем копировать???А Если у меня много компов То как это прописать

Func _DirCopy($sSrc, $sDest, $iReplace = 0) ; Это функцию я так и не понял????? Вот ее надо объяснить
    Local $sReplace = ' /Y'

    If Not $iReplace Then
        $sReplace = ''
    EndIf

    Run('xcopy /H /E /C /I /S' & $sReplace & ' "' & $sSrc & '" "' & $sDest & '"', '', @SW_HIDE) ; И это тоже не совсем понятно
EndFunc


Можешь объяснить че да как???
 
Автор
T

Timerlan

Новичок
Сообщения
93
Репутация
0
вроде как есть тема, где реализовано копирование папок и файлов.
Копируем файлы без "тормозов"

не это не много не то мне нужно чтоб он копировал одновременно на несколько ПК
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,673
Репутация
2,486
Timerlan [?]
Можешь объяснить че да как?

Код:
;Вызов функции копирования папки
_DirCopy('C:\Src', 'D:\Dst')

;Сама функция копирования, её добавляем в конец скрипта и забываем про неё.
Func _DirCopy($sSrc, $sDest, $iReplace = 0)
    ;Переменная замены
    Local $sReplace = ' /Y'
    
    ;Если параметр замены = 0, то опустошаем переменную замены
    If Not $iReplace Then
        $sReplace = ''
    EndIf

    ;Вызов командной утилиты xcopy в скрытом режиме, подробнее о команде узнаём запустив команду из cmd.exe с параметром /? (xcopy /?)
    Run('xcopy /H /E /C /I /S' & $sReplace & ' "' & $sSrc & '" "' & $sDest & '"', '', @SW_HIDE)
EndFunc


А Если у меня много компов То как это прописать
Добавить ещё один вызов подобной команды.


P.S.
А как ты копировал обычной DirCopy?
 
Автор
T

Timerlan

Новичок
Сообщения
93
Репутация
0
Я так писал
Код:
$sPath='\\10.2.1.1\c$\1'
$sPath='\\10.2.1.1\c$\1'
DirRemove($sPath,1)
DirCreate($sPath)
DirCopy("\\10.2.1.3\soft\zip", "\\10.2.1.1\c$\1",1) ; 10.2.1.3 это источник откуда будем копировать 10.2.1.1 куда будем копировать
DirCopy("\\10.2.1.3\soft\zip", "\\10.2.1.2\c$\1",1) ; 10.2.1.3 это источник откуда будем копировать 10.2.1.2 куда будем копировать


Можешь вот по этому примеру полностью скрипт помочь написать?
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,673
Репутация
2,486
Timerlan [?]
Попробуй поместить полностью функцию _DirCopy в самый низ скрипта, и вызывать её вместо DirCopy:

Код:
_DirCopy("\\10.2.1.3\soft\zip", "\\10.2.1.1\c$\1", 1)
_DirCopy("\\10.2.1.3\soft\zip", "\\10.2.1.2\c$\1", 1)
 
Автор
T

Timerlan

Новичок
Сообщения
93
Репутация
0
А это убрать да?
Код:
_DirCopy('C:\Src', 'D:\Dst')
 
Автор
T

Timerlan

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

joiner

Модератор
Локальный модератор
Сообщения
3,557
Репутация
628
может просто так сделать?
Код:
Dim $array[4]
$array[0] = 'путь\'
$array[1] = 'путь\'
$array[2] = 'путь\'
$array[3] =  'путь\'

For $i =0 To UBound($Array)-1
	DirCopy(@ScriptDir &'\test',$array[$i] & '\test' ,1)
	Next

у меня работает..копирует папку со всеми файлами. вроде как этого хочет автор темы.
проверку на существование нужной папки в месте назначения можно довесить в условии
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,673
Репутация
2,486
Timerlan [?]
я просто пробывал запустить скрипт который ты написал он у меня почему ошибку выдавал.
Какую?

Александр [?]
вроде как этого хочет автор темы
Автор темы написал что он хочет:

[?]
мне нужно чтоб он копировал одновременно на несколько ПК
 

joiner

Модератор
Локальный модератор
Сообщения
3,557
Репутация
628
вот оно что михалыч.... :smile:
ну раз xcopy одновременно может копировать в разные места, то тогда да. прошу прощения..все время думал что этой командой только один объект за раз можно скопировать ( то есть одну папку в одно место назначения)
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Александр
так оно и есть. другое дело, что запустить можно сколько угодно копий xcopy. эдакая псевдомногозадачность :smile:
 
Верх