Jak uzyskać robocopy do korzystania z pliku dziennika zawierającego spacje?


11

Próbuję następującego polecenia:

robocopy "x:\dir" "y:\dir" /mir /z /tee /fft /nfl /ndl /eta /log:"x:\path to logs\12-15-11 01 file with spaces.txt"

Otrzymuję ten błąd:

ERROR : Invalid Parameter #10 : "/log:x:\path to logs\12-15-11 01 file with spaces.txt"

EDYCJA 1

Okazuje się, że powyższe polecenie było prawidłowe, miałem literówkę na swojej drodze. Jeśli masz ścieżkę zawierającą spacje, możesz podać je do przełącznika robocopy / log w następujący sposób:/log:"c:\path to a file\robocopy.log"


Pracuje dla mnie. Czy może u góry wyświetla się bardziej szczegółowy błąd?
Carko,

Czy uruchamiasz to polecenie w kontekście skryptu zamiast bezpośrednio w wierszu polecenia. Być może coś jeszcze dodaje ucieczki?
Zoredache,

Komunikat o błędzie sugeruje, że początkowe znaki cudzysłowu występują przed dwukropkiem; czy jesteś pewien, że polecenie, które próbujesz uruchomić, jest pokazane?
Harry Johnston,

Przepraszam, miałem literówkę na ścieżce. Głównie zawstydzony. Dzięki za szybką pomoc wszystkich! Jaka jest procedura, czy powinienem usunąć to pytanie? Czy też mogę to przeformułować i dodać odpowiedź pokazującą, że możesz wstawić cudzysłowy wokół argumentu przełącznika / log robocopy?
slm

Nie ma powodu, aby usunąć @slm. Jeśli jeden z powyższych komentarzy pomógł ci znaleźć problem, poproś go o opublikowanie go jako odpowiedzi, a następnie oznacz odpowiedź jako poprawną. Jeśli problem dotyczył czegoś zupełnie innego, napisz własną odpowiedź i oznacz ją jako odpowiedź, aby przyszli użytkownicy mogli sprawdzić, czy mają podobny problem.
music2myear

Odpowiedzi:


11

Jeśli musisz podać ścieżkę zawierającą spacje do przełącznika robocopy / log, możesz to zrobić w następujący sposób:

/log:"c:\path to logs files\some log file.txt"

Dostaję nieprawidłowy błąd: parametr nr 11 „/ log”. Dodałem go na końcu innego, działającego polecenia.
Andrew S

Nie pracuję już tam, gdzie obsługuję okna, więc nie mam możliwości przetestowania tego.
slm

Upewnij się, że istnieje katalog macierzysty pliku dziennika. Robocopy go nie utworzy i niestety narzeka na parametr cmdline, jeśli katalog nie istnieje.
mojo

4

Istnieją cztery sposoby rejestrowania jako dokumentacja programu PowerShell

/log:<LogFile> : Zapisuje dane wyjściowe statusu do pliku dziennika (zastępuje istniejący plik dziennika).

  • na przykład: robocopy "c:\a" "c:\b" /log:"c:\copy_log.log"

/log+:<LogFile> : Zapisuje dane wyjściowe statusu do pliku dziennika (dołącza dane wyjściowe do istniejącego pliku dziennika).

  • na przykład: robocopy "c:\a" "c:\b" /log+:"c:\copy_log.log"

/unilog:<LogFile> : Zapisuje dane wyjściowe statusu do pliku dziennika jako tekst Unicode (zastępuje istniejący plik dziennika).

  • na przykład: robocopy "c:\a" "c:\b" /unilog:"c:\copy_log.log"

/unilog+:<LogFile> : Zapisuje dane wyjściowe statusu do pliku dziennika jako tekst Unicode (dołącza dane wyjściowe do istniejącego pliku dziennika).

  • na przykład: robocopy "c:\a" "c:\b" /unilog+:"c:\copy_log.log"

Aby uzyskać więcej informacji https://technet.microsoft.com/en-us/library/cc733145(v=ws.11).aspx


Polecam również dodać /teeprzełącznik, ponieważ to również wyświetla dane wyjściowe z wiersza poleceń i pozwala użytkownikowi zobaczyć postęp kopiowania plików również w wierszu poleceń.
vibs2006

1

Dzieje się tak, gdy potrzebujesz uprawnień administratora / lub pop, aby utworzyć plik w tym katalogu

Więc spróbuj mieć katalog log / temp i spróbuj dodać plik dziennika do tego katalogu

$ mkdir C:\log

na przykład:

$ robocopy "c:\a" "c:\b" /log:"c:\log\copy_log.log"

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.