Bagaimana cara menyembunyikan "File Ekstra" dan "100%" dari output robocopy?

17

Saya memiliki skrip robocopy untuk mendukung repositori Kiln kami yang beroperasi setiap malam, yang terlihat seperti ini:

robocopy "$liveRepoLocation" "$cloneRepoLocation" /MIR /MT /W:3 /R:100 /LOG:"$backupLogLocation\BackupKiln.txt" /NFL /NDL /NP

Dalam output, ada satu ton baris yang berisi "File ekstra", seperti ini:

*EXTRA File              153    E:\Kiln Backup\elasticsearch\data\elasticsearch-kiln\nodes\0\indices\kiln-2\0\index\_yxe.fdt
*EXTRA File               12    E:\Kiln Backup\elasticsearch\data\elasticsearch-kiln\nodes\0\indices\kiln-2\0\index\_yxe.fdx
*EXTRA File              128    E:\Kiln Backup\elasticsearch\data\elasticsearch-kiln\nodes\0\indices\kiln-2\0\index\_yxe.fnm
*EXTRA File              363    E:\Kiln Backup\elasticsearch\data\elasticsearch-kiln\nodes\0\indices\kiln-2\0\index\_yxe.frq
*EXTRA File               13    E:\Kiln Backup\elasticsearch\data\elasticsearch-kiln\nodes\0\indices\kiln-2\0\index\_yxe.nrm

Selain itu, ada ratusan baris di bagian bawah yang tidak mengandung apa pun kecuali "100%", seperti ini:

100%  
100%  
100%  
100%  
100%  
100%  
100%  

Selain membuat file log menjadi sangat besar (ada banyak folder / file di Kiln repo), itu membuatnya menjengkelkan untuk memindai log sekarang dan kemudian untuk melihat apakah semuanya bekerja dengan baik.

  1. Bagaimana cara menghentikan "File Ekstra" yang muncul di log? (edit: seluruh baris, bukan hanya teks sebagai / NC akan berhenti)
  2. Bagaimana cara menghentikan garis "100%" konyol ini muncul di log?

Saya sudah mencoba setiap kombinasi switch yang dapat saya pikirkan (switch saat ini tercantum di atas dalam perintah), tetapi tampaknya tidak ada yang menyembunyikan ini!

Danny Tuppeny
sumber
Menurut ss64.com/nt/robocopy.html seharusnya berfungsi. Sudahkah Anda mencoba mengubah urutan params untuk mencerminkan dokumentasi? Itu akan menjadi: / L / NP / LOG: file / UNILOG: file / LOG +: file / UNILOG +: file / TS / FP / NS / NC / NFL / NDL / TEE / NJH / NJS
Luiz Angelo

Jawaban:

8

Hanya memperhatikan Anda kehilangan a / NC di sana.

/ NC: Tanpa Kelas - jangan mencatat kelas file.

File kelas adalah ... Apa yang dimaksud dengan robocopy dengan men-tweak, kesepian dan ekstra?

Jadi saya akan coba: robocopy "$ liveRepoLocation" "$ cloneRepoLocation" / MIR / MT / W: 3 / R: 100 / NP /LOG:"$backupLogLocation¡BackupKiln.txt "/ NC

Edit 1

Salahku. Tidak melihat Anda telah disebutkan mencoba / NC

Saya sudah diuji di sini. Tampaknya opsi / MIR mengabaikan opsi logging. Juga / MT mengacaukannya, menambahkan 100%.

Satu-satunya cara saya bekerja adalah

D: \ robocopy> tujuan sumber robocopy / MIR / W: 3 / R: 100 / NS / NC / NFL / NDL / NP /LOG:log.txt ".

* Ini benar-benar berfungsi dengan / MIR. Tetapi Anda harus menentukan / NFL dan /NDL.* Tidak tahu apakah itu dapat diterima untuk Anda.

Jika Anda mencoba / MT, itu masih akan menunjukkan 100% konyol

Edit 2

Saya tahu pertanyaannya adalah tentang Robocopy tapi saya pikir Anda harus mencoba RichCopy http://technet.microsoft.com/en-us/magazine/2009.04.utilityspotlight.aspx

Inilah baris perintah:

richcopy "D: \ robocopy \ source" "D: \ robocopy \ destination" / P / QO / QP "D: \ robocopy \ report.log" / UE / AS / UD / UPC / UFC / USC / UPR / UET / UET

Ini memulai GUI RichCopy dan ditutup ketika selesai.

Dan ini log

28/11/2012 11: 35: 19,0, Salin mulai,

28/11/2012 11: 35: 20,0, Jalur sumber: D: \ robocopy \ source,

28/11/2012 11: 35: 20,0, Jalur tujuan: d: \ robocopy \ destination,

28/11/2012 11: 35: 20,0, Jumlah file sumber: 12 file,

28/11/2012 11: 35: 20,0, Jumlah file yang disalin: 13 file,

28/11/2012 11: 35: 20,0, jumlah file yang dihapus: 1.224 file,

28/11/2012 11: 35: 20,0, Waktu yang lewat: 00:00:01,

28/11/2012 11: 35: 20,0, Kinerja rata-rata: 1.641.528 byte / detik,

28/11/2012 11: 35: 20,0, Kinerja rata-rata: 13 file / detik,

28/11/2012 11: 35: 20,0, Salin selesai, D: \ robocopy \ sumber

Luiz Angelo
sumber
1
/ NC hanya menghapus kolom "File Ekstra", sehingga teks tidak ditampilkan. Sisa garis masih termasuk. Saya tidak ingin garis sama sekali; Saya hanya ingin ringkasannya :(
Danny Tuppeny
Salahku. Tidak melihat Anda sudah menyebutkan itu. Saya sudah diuji di sini. Tampaknya opsi / MIR mengabaikan opsi logging. Juga / MT mengacaukannya. Satu-satunya cara saya mulai bekerja adalah "D: \ robocopy> tujuan sumber robocopy / MIR / W: 3 / R: 100 / NS / NC / NFL / NDL / NP /LOG:log.txt". Jika Anda mencoba / MT, itu masih akan menunjukkan 100% konyol.
Luiz Angelo
1
100% adalah bagian terburuk (jauh lebih banyak daripada file tambahan); tidak menyadari itu MT yang melakukan ini, jadi mungkin menghapusnya jika itu tidak memberikan manfaat besar!
Danny Tuppeny
Menandai ini sebagai benar karena ini adalah solusi untuk 100%, dan saya tidak berpikir ada solusi untuk "Extra file" logging dengan / MIR :(
Danny Tuppeny
Saya baru saja mengedit jawaban asli saya. Hanya memposting komentar baru sehingga Anda tidak akan melewatkannya.
Luiz Angelo
5

The /XXpilihan tidak termasuk file tambahan dari yang tercantum. Anehnya, opsi ini tercantum dalam File Selectionopsi, bukan Logging. Ini kebalikan dari /Xopsi logging, saya kira.

Keith
sumber
1
Saya percaya / XX mencegah Anda memilih file tambahan, dan / X hanya untuk logging, tetapi memungkinkan Anda menampilkan bahkan file tambahan LEBIH BANYAK! / XX melakukan trik untukku.
sonjz
1
-1, karena / XX meninggalkan file tambahan pada tujuan, bukannya menghapusnya, seperti yang diharapkan dari proses mirroring.
tandai
3

Saya pikir ini mungkin berhasil:

robocopy sourceDir targetDir *.* /njh /njs /ndl /np | find /v "*EXTRA File"

Jadi hanya pipa output ke "find" dengan / V untuk mengecualikan baris yang berisi teks yang ditentukan "* File Ekstra".

Svein Terje Gaup
sumber
Bagaimana cara mengecualikan% progres (penghitung 0 hingga 100%) dari log saja (tetapi masih terlihat di konsol)?
PeterCo
0

bagaimana dengan menggunakan switch

 /MIR /MT /W:3 /R:100 /NFL /NDL /NP 2>&1 | findstr /v /L /C:" * EXTRA " | findstr /v /L /C:"100%%" > "log file name with or without path"

jadi kamu punya

robocopy "$liveRepoLocation" "$cloneRepoLocation" /MIR /MT /W:3 /R:100 /NFL /NDL /NP 2>&1 | findstr /v /L /C:" * EXTRA " | findstr /v /L /C:"100%%" > "$backupLogLocation\BackupKiln.txt"
  • double %% harus memiliki% dalam string pencarian
  • yang 2> & 1 pengalihan aliran stderr ke stdout karena beberapa pesan ditulis ke stderr dan kami ingin menangkap garis seperti / LOG saklar tidak.
  • perintah 2 findstr dengan / v switch menemukan semua baris yang tidak mengandung string pencarian
  • yang > "log file" pengalihan output akhir file log Anda. Jika Anda biasanya menggunakan / LOG: + maka gunakan >> "log filename" sebagai gantinya

Catatan: jika Anda menggunakan ini dalam skrip PowerShell, seperti yang tampaknya Anda lakukan, Anda perlu menggunakan findstr daripada menemukan seperti yang Anda bisa dalam file .bat atau .cmd. Catatan / L dan / C: tidak didukung oleh find tetapi untuk perintah find tidak diperlukan.

BeowulfNode42
sumber