Jak mogę wyciszyć robocopy w wierszu poleceń z wyjątkiem postępu?

105

Używam robocopy do tworzenia kopii zapasowych za pomocą skryptu PowerShell i jest całkiem niesamowity, z wyjątkiem tego, że chciałbym, aby pokazywał tylko procent postępu podczas kopiowania, a nie wszystkie inne informacje.

Pozostałe informacje zaśmiecają okno poleceń, które chciałbym wyczyścić i uprościć, aby łatwo było zobaczyć ogólny postęp tworzenia kopii zapasowej.

czy to możliwe?

Dzięki, Andrew

AndyGeek
źródło

Odpowiedzi:

192

Dodałem następujące 2 parametry: /np /nfl

Więc razem z 5 parametrami z AndyGeek'sodpowiedzi, które są /njh /njs /ndl /nc /nsnastępujące, i jest cicha:

ROBOCOPY [source] [target] /NFL /NDL /NJH /NJS /nc /ns /np

/NFL : No File List - don't log file names.
/NDL : No Directory List - don't log directory names.
/NJH : No Job Header.
/NJS : No Job Summary.
/NP  : No Progress - don't display percentage copied.
/NS  : No Size - don't log file sizes.
/NC  : No Class - don't log file classes.
R. Koene
źródło
2
Nadal jest wyświetlany komunikat „100%”.
Scott Chu
13
To nadal wyświetla pojedynczą pustą linię, co jest zauważalne w plikach wsadowych.
wqw
7
/nc /nsnie jest konieczne, gdy /nfl /ndljest określone.
Vojtěch Dohnal
3
@wqw, po prostu dodaj> NUL na EOL, a pusty wiersz jest historią.
Herb
2
@ScottChu Drukuje 100%, gdy używasz przełącznika / mt. Chyba trzeba będzie zdecydować, czy chcesz wielowątkowe, czy nie przedstawiono% s
Loaf
40

Zrobiłem to, korzystając z następujących opcji:

/njh /njs /ndl /nc /ns

Zwróć uwagę, że nazwa pliku nadal jest wyświetlana, ale dla mnie to w porządku.

Aby uzyskać więcej informacji na temat robocopy, przejdź do http://technet.microsoft.com/en-us/library/cc733145%28WS.10%29.aspx

AndyGeek
źródło
3
/ nfl, aby pominąć nazwę pliku
xagyg
12
Pojawia się, jeśli używasz /mirlub /purgedodatkowe pliki są nadal rejestrowane. Nie mogę znaleźć sposobu, żeby to wyłączyć.
bbodenmiller
1
Zwróć uwagę, że w przypadku robocopy pasek postępu pokazuje tylko% na plik, nie pokazuje postępu z całkowitą liczbą skopiowanych bajtów z całości /% tego.
barlop,
Bardzo interesujące docenienie @bbodenmiller ... Bardzo irytujące logowanie tych plików ...
toscanelli
18

Jeśli nie chcesz w ogóle żadnych wyników, jest to najprostszy sposób:

robocopy src dest > nul

Jeśli nadal potrzebujesz informacji i chcesz usunąć tylko część wyniku, użyj parametrów z R.Koene'sodpowiedzi.

SHernandez
źródło
5
I badanie > log:nulpod win8.1 x64 znajduje się pusty plik dziennika. > nuldziała zgodnie z oczekiwaniami.
Ivan Yan
1
„Pusty” logplik, który generuje, nie jest nawet naprawdę pusty. Po prostu zapisuje dane w alternatywnym strumieniu, który jest niewidoczny dla Eksploratora, ale nadal jest obecny na dysku. (Możesz to sprawdzić, używając dir /rpolecenia, aby je wyświetlić). @IvanYan jest poprawne, > nuljest poprawnym poleceniem, aby całkowicie odrzucić dane wyjściowe.
jmbpiano
16

W PowerShell lubię używać:

robocopy src dest | Out-Null

Pozwala to uniknąć konieczności zapamiętywania wszystkich przełączników wiersza poleceń.

Aaron Tribou
źródło
Robiąc to, natychmiast zabił polecenie bez ostrzeżenia. Używałem /PURGE.
Sawtaytoes
Wartość Out-Null nie powinna mieć wpływu na wykonanie polecenia robocopy. Po prostu przekierowuje strumień wyjściowy. msdn.microsoft.com/en-us/powershell/reference/4.0/… Możesz spróbować usunąć wartość Out-Null, aby sprawdzić, czy odrzucone dane wyjściowe zawierają jakąkolwiek wskazówkę dotyczącą tego, co się dzieje.
Aaron Tribou
2

Obejściem problemu, jeśli chcesz, aby był absolutnie cichy, jest przekierowanie wyjścia do pliku (i opcjonalnie usunięcie go później).

Robocopy src dest > output.log
del output.log
HSM
źródło
6
także> NUL po prostu odrzuca wyjście, nie trzeba się martwić o plik.
Sellorio,
1
lub potokiem do Out-Nullw PowerShell
orad
2

robocopy ma również tendencję do drukowania pustych linii, nawet jeśli nic nie robi. Odfiltrowuję puste wiersze za pomocą takiego polecenia:

robocopy /NDL /NJH /NJS /NP /NS /NC %fromDir% %toDir% %filenames% | findstr /r /v "^$"
TarmoPikaro
źródło
0

> Null nie działa w cudzysłowach. Widzi> null jako nazwę pliku wsadowego.

Robocopy nie działało !!!

Oto nowy plik wsadowy:

robocopy /mir /B /r:1 /nfl /ndl /njh /njs /nc /ns /np c:\EnvBackup c:\offsite_backup\EnvBackup

robocopy /mir /B /r:1 /nfl /ndl /njh /njs /nc /ns /np c:\shares c:\offsite_backup\shares

robocopy /mir /B /r:1 /nfl /ndl /njh /njs /nc /ns /np c:\Quickbooks_Backup c:\offsite_backup\Quickbooks_Backup
Jason L.
źródło
-1

Nie ma potrzeby przekierowywania do pliku i usuwania go później. Próbować:

Robocopy src dest > null 
areB
źródło
2
Spowoduje to utworzenie pliku nulli zapisanie w nim dziennika. Wycisza go w wierszu poleceń kosztem zapisów na dysku.
Sawtaytoes