Làm thế nào để robocopy với tiến trình chỉ đăng nhập vào giao diện điều khiển?


8

Tôi muốn chạy RoboCopy sẽ cập nhật bảng điều khiển với% tiến trình nhưng không làm lộn xộn tệp nhật ký với% tiến trình.

Lệnh RoboCopy sau đây sẽ thực hiện sao chép mong muốn và chắp thêm thông tin đăng nhập vào tệp nhật ký.

RoboCopy <source> <dest> /log+:<log file> /tee

Vấn đề là tệp nhật ký bị lộn xộn với% cập nhật tiến độ. Vì vậy, tôi cần phải thay đổi lệnh này:

RoboCopy <source> <dest> /log+:<log file> /tee /np

Bây giờ vấn đề là tôi không nhận được bất kỳ cập nhật tiến độ% nào trên màn hình.

Tôi đã đọc http://technet.microsoft.com/en-us/l Library / cc733145% 28WS.10% 29.aspx một vài lần và không thể tìm thấy một công tắc nào tôi cần. Tôi đang thiếu một cái gì đó hoặc là những gì tôi muốn đạt được không thể?


Bạn có phải chỉ sử dụng các công cụ dựng sẵn?
Hello71

Câu trả lời:


2

Vì không ai trả lời điều này quá lâu, tôi nghĩ tôi muốn đề xuất một vài điều.

Nếu bạn đang sử dụng tập lệnh bó, không quá khó để sử dụng sed để loại bỏ thông tin tiến trình không mong muốn khỏi tệp nhật ký. Tôi không đủ kinh nghiệm với nó để cung cấp cho bạn một giải pháp sử dụng nó mà không dành thời gian cho nó.

Có một phiên bản tệp .exe duy nhất sedtrong UnxUtils (với phiên bản cập nhật hơn một chút trong bản cập nhật zip).

Một lựa chọn khác là sử dụng XXCOPY thay vì Robocopy. Nó có một số lượng công tắc thực sự vô lý (hơn 230), cho phép bạn làm bất cứ điều gì bạn muốn. Bạn phải dành cả một buổi tối để chọn những gì bạn muốn sử dụng. Nó cũng có một hộp thoại tiến trình GUI, nếu bạn muốn sử dụng nó.

Có một phiên bản miễn phí cho sử dụng cá nhân, không thể được sử dụng cho kịch bản tự động, vì bạn cần phải tương tác làm theo lời nhắc, không giống như phiên bản trả tiền.

XXCOPY

Một lựa chọn khác là RichCopy , có GUI có thể sử dụng để chọn tùy chọn của bạn. Sau đó, nó có thể cung cấp cho bạn dòng lệnh của hoạt động của bạn để sử dụng trong các tập lệnh bó.

RichCopy


1

Re: robocopy và tiến trình đăng nhập 'tiếng ồn'

Giải pháp: chỉ sử dụng / TEE và để nó ghi lại 'tiếng ồn', nếu không bạn sẽ không thấy bất kỳ tiến triển nào. Sau đó sử dụng sed, như đề xuất đầu tiên để làm sạch logfile như sau:

sed -i.bak "s / \ x0d. * \ x0d. * $ //" logfile.txt

xóa .bak nếu bạn không muốn sao lưu không trộn. sed có sẵn cho các cửa sổ ở đây và hoạt động tốt, ít nhất là cho sử dụng một dòng *.

http://gnuwin32.sourceforge.net/packages/sed.htm

* (Các lệnh sed trong tập lệnh unash bash / cshell thường được trải rộng trên nhiều dòng, tăng thêm tính linh hoạt và phức tạp .. Tôi không mong đợi các loại lệnh sed này hoạt động với các tập lệnh cmd của windows, nhưng sed vẫn hữu dụng trong windows).


Không có 1 Là một cách để ống stdoutthông qua sedtrực tiếp?
paradroid

1
tất nhiên bạn có thể chuyển qua sed, tuy nhiên sẽ xóa thông tin tiến trình khỏi màn hình giao diện điều khiển cũng như có thể là logfile ...
Mac

Tất nhiên, nhưng tôi nghĩ có lẽ teelệnh này có thể được sử dụng thay cho /TEEchuyển đổi của Robocopy , nhưng tôi mới nhận ra rằng đó là một phần của TCC/LEvà không phải là một CMDlệnh chuẩn . Nó có sẵn trong PowerShellmặc dù.
paradroid

thực sự .. nó vẫn ghi tiến trình lộn xộn vào logfile! Vì vậy, là trái ngược hoàn toàn với những gì đang muốn. Tôi vừa thử nghiệm với: robocopy. tst /log:n:\tst.log / tee | sed "s / \ x0d. * \ x0d. * $ //"
Mac

tee cũng có sẵn từ gnuwin32 .. nhưng sẽ có cùng một vấn đề;) gnuwin32.sourceforge.net/packages/coreutils.htmlm
Mac
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.