XCopy gặp vi phạm chia sẻ, cách xử lý


1

Tôi đang sử dụng xcopyđể sao chép các tập tin lớn. Một điều tôi đặc biệt thích xcopylà công /Ftắc hiển thị tất cả các tệp nguồn và đích, bao gồm các đường dẫn, đại loại như:

xcopy /E /Y /F D:\Temp_Folder\test_origin\* D:\Temp_Folder\test_dest\
D:\Temp\origin\B_Normal\blabla.txt -> D:\Temp\dest\B_Normal\blabla.txt
D:\Temp\origin\B_Normal\B.A\normal.txt -> D:\Temp\dest\B_Normal\B.A\normal.txt
D:\Temp\origin\B_Normal\B.B\drawing.bmp -> D:\Temp\dest\B_Normal\B.B\drawing.bmp
D:\Temp\origin\C_Fill_with_empty\empty.bmp -> D:\Temp\dest\C_Fill_with_empty\empty.bmp
D:\Temp\origin\C_Fill_with_empty\empty.txt -> D:\Temp\dest\C_Fill_with_empty\empty.txt
5 File(s) copied

Tuy nhiên, dường như có một số vấn đề:

D:\Temp\origin>tree /F /A
...
D:.
+---A_Empty
+---B_Normal
|   |   blabla.txt
|   |
|   +---B.A
|   |       normal.txt
|   |
|   \---B.B
|           Drawing.bmp
|
\---C_Fill_with_empty
    |   empty.bmp
    |   empty.txt
    |
    \---empty

Như bạn có thể thấy, các thư mục D:\Temp\origin\A_Empty\D:\Temp\origin\C_Fill_with_empty\empty\dường như chưa được sao chép (các tệp trống dường như được sao chép, không phải các thư mục trống).

Tuy nhiên điều này không đúng: trong thư mục đích, các thư mục A_emptyC_Fill_with_empty\emptyở đó, nhưng công /Ftắc chỉ hiển thị các tệp đã được sao chép, vì vậy việc sao chép các thư mục trống được thực hiện, nhưng không được hiển thị. (Trong bài viết gốc của tôi, tôi nghĩ rằng các thư mục trống không được sao chép)

Quan trọng nhất, tôi không hiểu ý nghĩa của công /Ctắc, trong đó nói

Tiếp tục sao chép ngay cả khi xảy ra lỗi.

Đêm qua xcopykết quả của một bản sao bó là một thông báo lỗi:

\\nas\<Complicated_Directory_Tree>\<file1>.gif -> G:\<Complicated_Directory_Tree>\<file1>.gif
\\nas\<Complicated_Directory_Tree>\<file2>.gif -> G:\<Complicated_Directory_Tree>\<file2>.gif
Sharing violation

Tôi muốn tránh thông báo lỗi không thể sửa chữa này, bằng cách sử dụng cơ chế thử lại, nhưng tôi không biết công /Ctắc sẽ hoạt động như thế nào : nó sẽ hoạt động như một "Thử lại" hoặc "Bỏ qua"? (Câu hỏi này đã được người khác hỏi, nhưng những người đó đã nhận được lời khuyên nên thay đổi robocopy, nhưng như đã đề cập trong bài đăng StackOverflow này , điều này có vẻ không dễ bị lỗi như vậy).

Có ai biết làm thế nào để buộc một cơ chế thử lại?

Cảm ơn trước


Có lẽ lý do để sử dụng robocopy là nó không có lỗi này? Tôi biết robocopy theo mặc định thử lại cái gì đó như 100.000 lần.
djsmiley2k

1
Một tỷ lần thử lại sẽ không làm gì tốt nếu lỗi vẫn còn.
Overmind

Chỉ cho thông tin của bạn: Tôi đã sửa đổi bài đăng vì vấn đề của các thư mục trống đã được giải quyết trong khi đó.
Dominique

Đã đăng giải pháp cho điều đó.
Overmind

@Overmind: thực sự bạn đúng. Thật không may, vấn đề là không thể khắc phục và nó xảy ra trên các tệp khác nhau, rõ ràng là ngẫu nhiên. Tôi tin rằng có một số quy trình, thực hiện một cái gì đó rất ngắn trên một tệp (như sao lưu hoặc sao lưu) và tại thời điểm cụ thể này xcopycó một vấn đề. Chỉ cần thử lại (có thể sau khi chờ một giây) có thể khắc phục vấn đề này.
Dominique

Câu trả lời:


1

Các / E bản thông số thư mục và thư mục con, bao gồm cả những sản phẩm nào. Chỉ cần thêm điều đó, và vấn đề được giải quyết.

Các / C tham số tiếp tục sao chép ngay cả khi lỗi xảy ra. Điều đó nên bỏ qua bất kỳ vấn đề.

Để giải thích, / c bỏ qua lỗi và tiếp tục quá trình sao chép với tệp hợp lệ tiếp theo.

Nếu bạn muốn thử lại các lỗi (mặc dù không được khuyến nghị), bạn có thể sử dụng vòng lặp WHILE trong tệp bó cho điều đó (các lệnh hữu ích: IF ERRORLEVEL = và thời gian chờ ). Ví dụ .


cảm ơn vì đã trả lời, nhưng tôi đã quyết định không sử dụng nó: Tôi đang làm việc với các tệp dữ liệu, sử dụng hơn 100 lệnh xcopy. Trên hết, các lệnh xcopy chứa các cấu trúc thư mục khó, nhân đôi những thứ đó gây nguy hiểm cho chất lượng của các tệp tin. Vì vậy, tôi đã quyết định thực hiện một cách tiếp cận khác: các tệp gây ra sự cố nằm ở một vị trí mạng cụ thể và tôi đã yêu cầu quản trị viên mạng của mình đặt trình giám sát tệp trên mỗi tệp ở đó. Khi sự cố xảy ra lần nữa, chúng tôi sẽ so sánh kết quả giám sát tệp với dấu thời gian trong nhật ký kết quả của tệp dữ liệu của tôi.
Dominique

Đó là một ý tưởng tốt; tham số giám sát là bước đầu tiên nên được thực hiện. Tốt hơn nên biết nguyên nhân thay vì bỏ qua nó.
Overmind
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.