Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

20 kopiowań naraz, po skończeniu jednego dobranie kolejnego z listy 200 adresów ip


Rekomendowane odpowiedzi

Opublikowano

Cześć

Potrzebuję skopiować pliki z ponad 200 komputerów w sieci. Mogę ściągać jednocześnie 20 plików na raz.

Niestety nie wiem jak zrobić by wystartowało pobieranie 20 plików w jednym momencie i po skończeniu

pobierania jednego z 20 automatycznie na jego miejsce uruchomiło się kolejne pobieranie z listy komputerów.

 

Poniżej przedstawiam kod który uruchamia mi kopiowanie plików jeden po drugim według listy adresów ip z targets.txt:

#include <MsgBoxConstants.au3>
#include <WinAPIFiles.au3>
#include <FileConstants.au3>
#include <File.au3>
#include <Array.au3>
#include <Date.au3>

Local $targets = @ScriptDir& "\targets.txt"
Local $log_name = "\backup.log"


Example()

Func Example()
   ;Sprawdza czy istnieje plik z targetami txt
   If Not FileExists($targets) Then
      MsgBox($MB_SYSTEMMODAL, "", "The file targets.txt - doesn't exist!")
	  Exit
   EndIf

   ;otwiera plik targets.txt i wrzuca go do pętli
   FileOpen($targets, 0)
   Global $arr[1000]
   ReDim $arr[_FileCountLines($targets)+1]

   For $i = 1 to _FileCountLines($targets)
	   $line = FileReadLine($targets, $i)
	   $arr[$i] = $line

	  ; Sprawdza czy jest online
	  Local $iPing = Ping($arr[$i], 250)
	  If $iPing Then
		 ; ONLINE
		 ; Kopiuje pliki z podanej lokalizacji w targets.txt do katalogu z nazwa lokalizacji i robi wpis do loga.
		 $rc = FileCopy("\\"&$arr[$i]&"\e$\backup\", @ScriptDir&"\backup\"&$arr[$i]&"\", $FC_CREATEPATH)
		 If $rc = 0 Then
			_FileWriteLog(@ScriptDir & $log_name, $arr[$i]&" ONLINE --- wystąpiły problemy z kopiowaniem")
		 Else
			_FileWriteLog(@ScriptDir & $log_name, $arr[$i]&" ONLINE --- skopiowano")
		 EndIf
	  Else
		 ;OFFLINE - wpisuje informacje do loga
		_FileWriteLog(@ScriptDir & $log_name, $arr[$i]&" OFFLINE")
	  EndIf
   Next


EndFunc   ;==>Example
Bardzo proszę o pomoc, bo nie mogę nic wymyślić ;(

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...