Что нового

Как копировать файл на все локальные диски?

webmonster

Новичок
Сообщения
33
Репутация
0
Есть надобность в копировании нескольких файлов на все локальные диски в папку pics. Искал на форуме что-то похожее и набрел на скрипт, который запускает WinAmp на каком бы диске он ни был. Ссылка http://autoit-script.ru/index.php/topic,4400.0.html.
Сам скрипт выглядит так
Код:
$var = DriveGetDrive( "all" )
$Path = "\Program Files\Winamp\winamp.exe"
If NOT @error Then
    For $i = 1 to $var[0]
        If FileExists($var[$i]& $Path) Then
        run($var[$i]& $Path)
        ExitLoop
        EndIf
    Next
EndIf


Я, как и раньше, не силен в работе с массивами да и в программировании в целом, по этому для себя переделал скрипт таким образом
Код:
$var = DriveGetDrive( "all" )
$Path = "\test.jpg"
If NOT @error Then
    For $i = 1 to $var[0]
        If FileExists($var[$i]& $Path) Then
			sleep(5000)
        Else
			InetGet('http://site.com/updatepics/test.jpg', @TempDir & $Path)
			FileCopy(@TempDir & $path, $var[$i]& "pics\" & $Path)
   ExitLoop
        EndIf
    Next
EndIf

Ошибок не выдает, но и не работает так как хочется. В какой-то из версий этого скрипта получилось так, что файл скопировался на 1 из дисков случайным образом и цикл остановился на этом.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
webmonster,
Уберите ExitLoop.
 
Автор
W

webmonster

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

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Попробуй так:
Код:
$File = 'test.jpg'  ;Ссылка на файл
$GetAllDrives = DriveGetDrive('FIXED') ;Все жесткие диски
For $i = 1 to $GetAllDrives[0]  ;От нуля до количества жестких дисков
	FileCopy($File, $GetAllDrives[$i] & '\') ;Копируем файл во все диски
Next
 
Верх