Robocopy
ma opcję monitorowania katalogu źródłowego i kopiowania dowolnych plików, które zostały zmienione. Możesz określić, ile zmian w katalogu musi nastąpić przed skopiowaniem ( /mon n
gdzie n
jest liczba zmian) i jak długo czekać przed ponownym skanowaniem ( /mot t
gdzie t
jest czas oczekiwania w minutach).
Chciałbym monitorować folder prawie nieprzerwanie, ponieważ skanuję tylko jeden plik i chcę, aby zmiany były w zasadzie natychmiastowe. Nie mogę jednak robić monitorów robocopy przez okres krótszy niż jedna minuta. Próbowałem /mot 0.5
i to się nie udaje. Próbowałem także /mot 0
i robocopy właśnie kończy pracę po skanowaniu, bez ciągłego monitorowania.
Jak sprawić, by robocopy skanowało folder prawie nieprzerwanie, z przyrostem czasu krótszym niż 1 minuta? Alternatywnie, czy jest jakieś inne narzędzie wiersza poleceń, które może stale monitorować źródło pliku i kopiować zmiany w czasie rzeczywistym?
źródło
Odpowiedzi:
Robocopy
Ponieważ jako argument przyjmuje się tylko minuty, nie można zmusić go do częstszego uruchamiania. Możesz jednak uruchomić go za pomocą pliku wsadowego i pozwolić, aby czas i zapętlenie występowały w pliku wsadowym lub w zaplanowanych zadaniach, a nie w robocopy.
źródło
Twoje tagi informują, że korzystasz z systemu Windows 8. To dobrze, ponieważ masz świetne narzędzie, jakim jest PowerShell, i poręczne małe polecenie cmdlet o nazwie
Register-ObjectEvent
.Utwórz plik tekstowy, zmień rozszerzenie na
.ps1
, wklej poniższy skrypt do pliku. Zmień$watchedFolder
zmienną na folder, który chcesz oglądać. Zmień funkcję Zrób coś, aby zawierała polecenie robocopy lub cokolwiek innego. Uruchom skrypt, dopóki skrypt jest uruchomiony, funkcja będzie działać (prawie natychmiast!) Za każdym razem, gdy plik lub folder zostanie zmieniony w obserwowanym folderze.Możesz mieć ten skrypt uruchamiany przy starcie systemu Windows i działałby w tle przez cały czas bez użycia timera.
Zobacz w akcji
Uruchom zapisany skrypt.
Zobaczysz migające okno konsoli, po ich zamknięciu jedynym wskazaniem, że jest uruchomione, będzie kilka nowych procesów.
Zrób coś na pulpicie, aby przetestować.
Niektóre informacje podstawowe - w przypadku, gdy nie znasz narzędzi używanych w tej odpowiedzi.
System.IO.FileSystemWatcher
odwiedź jego stronę MSDN .źródło
DSynchronize to autonomiczne narzędzie, które pozwala okresowo synchronizować dwa lub więcej folderów na dysku twardym, dyskietce, sieci LAN, kluczu USB, CD-DVD (z oprogramowaniem do zapisu pakietów) i serwerze FTP. To nie jest dokładnie to pytanie, ale najbliższa rzecz, jaką mogłem znaleźć.
Ja również szukałem rozwiązania minimalnego 1-minutowego czasu w Robocopy i znalazłem to dwuletnie pytanie. Skończyło się na tym, że zaproponowałem mi to oprogramowanie i właśnie tego używam. Dla przypomnienia, nie mam żadnego związku z oprogramowaniem.
Plusy:
Cons:
Opcja synchronizacji w czasie rzeczywistym jest zaznaczona na zrzucie ekranu w sekcji „Opcje specjalne”. To pytanie wydaje się określać jako cel. Jeśli nie jest zaznaczone i nie masz ustawionego timera, możesz kliknąć przycisk „Synchronizuj”, aby rozpocząć synchronizację jednorazową.
Jak zsynchronizować dwa foldery:
Znalazłem również ten film na YouTube , który pokazuje oprogramowanie w akcji. Pokazuje starszą wersję, a opcje nie są w tym samym miejscu, ale daje poczucie działania oprogramowania.
źródło