Saya ingin menjalankan RoboCopy yang akan memperbarui konsol dengan% progres tetapi tidak mengacaukan file log dengan% progres.
Perintah RoboCopy berikut akan melakukan copy yang diinginkan dan menambahkan informasi log file log.
RoboCopy <source> <dest> /log+:<log file> /tee
Masalahnya adalah file log berantakan dengan pembaruan% kemajuan. Karena itu saya perlu mengubah perintah untuk ini:
RoboCopy <source> <dest> /log+:<log file> /tee /np
Sekarang masalahnya adalah saya tidak mendapatkan% kemajuan pembaruan di layar.
Saya telah membaca http://technet.microsoft.com/en-us/library/cc733145%28WS.10%29.aspx beberapa kali sekarang dan tidak dapat menemukan saklar yang saya butuhkan. Apakah saya melewatkan sesuatu atau apa yang ingin saya capai tidak mungkin?
Jawaban:
Karena tidak ada yang menjawab ini begitu lama, saya pikir saya akan menyarankan beberapa hal.
Jika Anda menggunakan skrip batch, seharusnya tidak terlalu sulit untuk menggunakan sed untuk menghapus informasi progres yang tidak diinginkan dari file log. Saya tidak cukup berpengalaman dengan itu untuk memberi Anda solusi menggunakannya tanpa menghabiskan waktu untuk itu.
Ada versi file .exe tunggal
sed
di UnxUtils (dengan versi yang lebih baru di zip pembaruan).Pilihan lain adalah menggunakan XXCOPY sebagai ganti
Robocopy
. Ini memiliki jumlah saklar yang benar-benar konyol (lebih dari 230), yang memungkinkan Anda melakukan apa pun yang Anda inginkan. Anda harus menghabiskan sepanjang malam memilih mana yang ingin Anda gunakan. Ini juga memiliki kotak dialog progres GUI, jika Anda lebih suka menggunakannya.Ada versi gratis untuk penggunaan pribadi, yang tidak dapat digunakan untuk skrip otomatis, karena Anda harus mengikuti petunjuk secara interaktif, tidak seperti versi berbayar.
Alternatif lain adalah RichCopy , yang memiliki GUI yang dapat digunakan untuk memilih opsi Anda. Ini kemudian dapat memberi Anda baris perintah operasi Anda untuk digunakan dalam skrip batch.
sumber
Re: robocopy dan kemajuan log 'noise'
Solusi: gunakan just / TEE dan biarkan ia mencatat 'noise', jika tidak, Anda tidak akan melihat adanya kemajuan. Kemudian gunakan sed, seperti yang disarankan untuk membersihkan logfile sebagai berikut:
sed -i.bak "s / \ x0d. * \ x0d. * $ //" logfile.txt
hapus .bak jika Anda tidak ingin cadangan yang belum diperbaiki. sed tersedia untuk windows di sini, dan berfungsi dengan baik, setidaknya untuk penggunaan baris * tunggal.
http://gnuwin32.sourceforge.net/packages/sed.htm
* (perintah sed dalam skrip unix bash / cshell sering tersebar di beberapa baris, menambah lebih banyak fleksibilitas dan kerumitan .. saya tidak mengharapkan tipe perintah sed itu bekerja dengan skrip windows cmd, tetapi sed masih berguna di bawah windows).
sumber
stdout
melaluised
langsung?tee
perintah itu dapat digunakan alih-alih/TEE
beralih Robocopy , tetapi saya baru menyadari bahwa itu adalah bagian dariTCC/LE
dan bukanCMD
perintah standar . Ini tersediaPowerShell
meskipun.