Robocopy có thể giám sát các tập tin với thời gian tăng ít hơn một phút không?


10

Robocopycó tùy chọn để theo dõi thư mục nguồn và sao chép bất kỳ tệp nào có thay đổi. Bạn có thể chỉ định bao nhiêu thay đổi trong thư mục phải xảy ra trước khi sao chép ( /mon nnơi nlà số thay đổi) và bao lâu để chờ đợi trước khi rescanning ( /mot tnơi tlà thời gian để chờ đợi trong vài phút).

Tôi muốn theo dõi một thư mục gần như liên tục, vì chỉ có 1 tệp tôi đang quét và tôi muốn các thay đổi về cơ bản là ngay lập tức. Tôi dường như không thể thực hiện giám sát bản sao trong khoảng thời gian ít hơn một phút. Tôi đã thử /mot 0.5và thất bại. Tôi cũng đã thử /mot 0và robocopy chỉ thoát sau khi quét một lần, mà không theo dõi liên tục.

Làm cách nào tôi có thể thực hiện quét bản sao một thư mục gần như liên tục, với thời gian tăng dưới 1 phút? Ngoài ra, có công cụ dòng lệnh nào khác có thể liên tục theo dõi nguồn tệp và sao chép các thay đổi trong thời gian thực không?


CÓ PHẢI là Robocopy?
Ƭᴇcʜιᴇ007

@ techie007 nếu có điều gì khác đạt được các yêu cầu tương tự, điều đó sẽ ổn, mặc dù tôi muốn tránh các công cụ của bên thứ ba nếu có thể. Nhưng nếu có một giải pháp hoàn hảo đó là bên thứ ba thì tôi sẵn sàng xem xét nó.
nhắt

@ techie007 - Tôi có cùng một vấn đề chính xác như nhinkle, và tôi đang sử dụng Robocopy theo cách chính xác tương tự. Nếu bạn biết về một giải pháp thay thế hoạt động tốt trên Windows, tôi sẽ mở cho nó. Hãy chia sẻ nó với chúng tôi
Durden81

Kiểm tra Freefilesync ngay bây giờ .. nó dường như là công cụ tôi cần.
Durden81

Câu trả lời:


8

Robocopy

/mot:<M>
Monitors source, and runs again in M minutes if changes are detected.

Vì nó chỉ chấp nhận vài phút làm đối số, tôi đoán bạn không thể buộc nó chạy thường xuyên hơn. Tuy nhiên, bạn có thể chạy nó bằng tệp bó và để thời gian & vòng lặp xảy ra trong tệp bó hoặc trong các tác vụ theo lịch chứ không phải trong bản sao lưu.


1
vâng, tôi sử dụng "ping -n 1 -w 500 1.2.3.4> NUL" để ngủ nửa giây, sau đó lặp lại với câu lệnh: LABEL và câu lệnh GOTO (tính bằng cmd)
Stig Eide

13

Thẻ của bạn nói rằng bạn đang sử dụng Windows 8. Điều này rất tốt, vì bạn có công cụ tuyệt vời đó là PowerShell và một lệnh ghép nhỏ tiện dụng có tên Register-ObjectEvent.

Tạo một tệp văn bản, thay đổi phần mở rộng thành .ps1, dán tập lệnh bên dưới vào tệp. Thay đổi $watchedFolderbiến vào thư mục bạn muốn xem. Thay đổi chức năng Do-Something để bao gồm lệnh robocopy của bạn hoặc bất cứ điều gì. Chạy tập lệnh, miễn là tập lệnh đang chạy, chức năng đó sẽ chạy (gần như ngay lập tức!) Bất cứ khi nào một tập tin hoặc thư mục được thay đổi trong thư mục đã xem.

Bạn có thể chạy tập lệnh này khi khởi động windows và nó sẽ chạy ở chế độ nền mọi lúc mà không cần sử dụng bộ đếm thời gian.

$block = {    
    function Do-Something
    {
        param ($message, $event)
        # function to call when event is raised
        # do a robocopy or whatever

        Start-Process cmd.exe "/C echo $("{0} {1}" -f $event.SourceEventArgs.FullPath, $message)&pause"
    }

    $watchedFolder = "C:\Users\Admin-PC\Desktop"
    $watcher = New-Object System.IO.FileSystemWatcher
    $watcher.Path = $watchedFolder

    Register-ObjectEvent -InputObject $watcher -EventName Created -SourceIdentifier File.Created -Action { Do-Something "Created" $event }
    Register-ObjectEvent -InputObject $watcher -EventName Deleted -SourceIdentifier File.Deleted -Action { Do-Something "Deleted" $event }
    Register-ObjectEvent -InputObject $watcher -EventName Changed -SourceIdentifier File.Changed -Action { Do-Something "Changed" $event }
    Register-ObjectEvent -InputObject $watcher -EventName Renamed -SourceIdentifier File.Renamed -Action { Do-Something "Renamed" $event }
}

$encodedBlock = [Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes($block))

Start-Process PowerShell.exe -verb Runas -argumentlist '-WindowStyle Hidden', '-NoExit', '-EncodedCommand', $encodedBlock

Xem nó trong hành động


  1. Chạy tập lệnh đã lưu.
    Chạy tập lệnh đã lưu.

  2. Bạn sẽ thấy một cửa sổ giao diện điều khiển nhấp nháy, sau khi chúng đóng dấu hiệu duy nhất nó đang chạy sẽ là một vài quy trình mới.
    nhập mô tả hình ảnh ở đây

  3. Làm một số thứ trên máy tính để bàn của bạn để kiểm tra.
    nhập mô tả hình ảnh ở đây

  4. Kết thúc quá trình PowerShell đã tạo khi bạn không còn muốn nó chạy.

Một số thông tin cơ bản - Trong trường hợp bạn không quen thuộc với các công cụ được sử dụng trong câu trả lời này.


  • Để biết thêm thông tin về System.IO.FileSystemWatcherxin vui lòng truy cập trang MSDN của nó .
  • Để biết thêm một số ví dụ về các sự kiện trong PowerShell, hãy truy cập blog này, tôi thấy hữu ích .
  • Đối với một mồi trên Windows PowerShell tôi đã thấy trang web này hữu ích (tôi thích các mẹo của họ trong ngày).
  • Nếu bạn đang sử dụng phiên bản Windows cũ hơn hoặc vì lý do nào đó bạn chưa cài đặt PowerShell, bạn có thể tải xuống Windows Management Framework 4.0 .

1
Đây là câu trả lời tốt nhất. Giải pháp này dựa trên sự kiện, có nghĩa là nó không bao giờ sử dụng cpu cho đến khi có thay đổi xảy ra và sau đó chương trình sẽ chạy ngay lập tức để đáp ứng. Ngoài ra, viết tuyệt vời.
CoolHandLouis

5

DSynyncize là một tiện ích độc lập cho phép bạn định kỳ đồng bộ hóa hai hoặc nhiều thư mục trên Đĩa cứng, Đĩa mềm, LAN, Khóa USB, CD-DVD (với phần mềm ghi gói) và máy chủ FTP. Nó không chính xác là những gì câu hỏi về, nhưng điều gần nhất tôi có thể tìm thấy.

Tôi cũng đang tìm kiếm một giải pháp cho thời gian tối thiểu 1 phút trong Robocopy và tìm thấy câu hỏi hai năm tuổi này. Cuối cùng tôi đã gợi ý phần mềm này cho tôi và đó là những gì tôi đang sử dụng. Đối với hồ sơ, tôi không có liên kết với phần mềm.

Ưu điểm:

  • Có đồng bộ hóa thời gian thực.
  • Có thể thêm nhiều cặp thư mục và chọn cặp nào đang hoạt động tại một thời điểm nhất định bằng cách sử dụng các hộp kiểm bên cạnh chúng.
  • Không có trình cài đặt, chương trình độc lập.
  • Bạn có thể loại trừ hoặc bao gồm các tệp thông qua các mẫu hoặc theo thời gian sửa đổi bằng cách nhấp vào nút 'bộ lọc'.
  • (những người khác; xem ảnh chụp màn hình bên dưới. Các hộp kiểm và nút có thêm các công cụ trợ giúp.)

Nhược điểm:

  • Là tiện ích GUI, không có công tắc dòng lệnh nào khả dụng
  • Tất cả các cặp thư mục đều có chung cài đặt

ảnh chụp màn hình

Tùy chọn đồng bộ hóa thời gian thực được đánh dấu trong ảnh chụp màn hình trong phần 'Tùy chọn đặc biệt'. Đây sẽ là những gì câu hỏi dường như mô tả như là mục tiêu. Nếu nó không được kiểm tra và bạn không có bộ hẹn giờ, thì bạn có thể nhấp vào nút 'Đồng bộ hóa' để bắt đầu đồng bộ hóa một lần.

Cách đồng bộ hai thư mục:

  • Chọn một thư mục nguồn mà bạn muốn theo dõi bằng cách sử dụng hộp thoại duyệt ở góc trên bên trái.
  • Chọn một thư mục đích mà bạn muốn sao chép các thay đổi ở góc trên bên phải.
  • (Tùy chọn) Nếu bạn nhập thủ công đường dẫn thư mục thay vì sử dụng hộp thoại duyệt, hãy nhấp vào nút 'KIỂM TRA' giữa hai hộp ở trên cùng để xem các thư mục đó có thực sự tồn tại không. Bạn cũng sẽ muốn kiểm tra 'Tạo thư mục nếu không tồn tại' trong hầu hết các trường hợp để đảm bảo các thư mục mới được sao chép qua, vì nó không được kiểm tra theo mặc định và do đó chương trình chỉ sao chép các tệp theo mặc định.
  • Chọn hộp kiểm 'Đồng bộ hóa thời gian thực'. Đồng bộ hóa hiện đang hoạt động và tất cả các thay đổi từ thư mục bên trái sẽ được sao chép sang thư mục bên phải.

Tôi cũng tìm thấy video YouTube này , cho thấy phần mềm đang hoạt động. Nó cho thấy một phiên bản cũ hơn và các tùy chọn không ở cùng một nơi, nhưng nó mang lại cảm giác về cách thức hoạt động của phần mềm.


Câu hỏi hỏi làm thế nào để làm cho một cái gì đó xảy ra (trong Robocopy). Thật tốt khi đề xuất một giải pháp thay thế, giải thích cách thực hiện cùng một kết quả bằng cách sử dụng một công cụ khác. Tuy nhiên, điều này không giải thích làm thế nào để thực sự giải quyết vấn đề.
fixer1234

@ fixer1234 Ban đầu tôi chỉ dự định bình luận về câu hỏi, nhưng rõ ràng tài khoản của tôi quá mới để làm điều đó (rõ ràng tôi có thể nhận xét về câu trả lời của riêng tôi). Tôi cũng đang tìm kiếm một giải pháp cho thời gian tối thiểu 1 phút trong robocopy và tìm thấy câu hỏi hai năm tuổi này. Cuối cùng tôi đã gợi ý cho tôi phần mềm trên và đó là những gì tôi đang sử dụng. Nghĩ rằng những người khác trong tình huống tương tự sẽ thấy nó hữu ích, đó là tất cả. Đối với một nhiệm vụ có vẻ đơn giản (đồng bộ hóa thư mục), thật đáng kinh ngạc là bạn phải tìm kiếm bao nhiêu để tìm ra giải pháp ..
Ashley Wilson

Để rõ ràng cho câu trả lời của tôi - tôi ước tôi có thể đính kèm ảnh chụp màn hình (một lần nữa, tài khoản quá mới để cho phép điều đó) sẽ làm cho nó rõ ràng hơn nhiều - đó là GUI một màn hình và tất cả các tùy chọn đều hiển thị rõ ràng và đơn giản hiểu.
Ashley Wilson

Nếu bạn sử dụng bất kỳ dịch vụ chia sẻ tệp nào, chỉ cần thêm một liên kết đến hình ảnh của bạn và ai đó sẽ nhúng nó cho bạn. Nếu bạn không thường xuyên sử dụng một cái, có rất nhiều cái miễn phí (như imgur.com).
fixer1234 20/03/2015

Đây là ảnh chụp màn hình: i.imgur.com/F7heg9A.png
Ashley Wilson
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.