Come faccio a usare robocopy per utilizzare un file di registro che include spazi?


11

Sto provando il seguente comando:

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"

Ricevo questo errore:

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

EDIT # 1

Si scopre che il comando sopra era valido, avevo un refuso nel mio percorso. Se si dispone di un percorso che include spazi, è possibile fornirli allo switch / log del robot in questo modo:/log:"c:\path to a file\robocopy.log"


Per me va bene. Mostra forse un errore più dettagliato nella parte superiore?
Carko,

Stai eseguendo quel comando nel contesto di uno script anziché direttamente dalla riga di comando. Forse qualcos'altro sta aggiungendo una sorta di fuga?
Zoredache,

Il messaggio di errore suggerisce che le virgolette iniziali sono prima anziché dopo i due punti; sei sicuro che il comando che stavi cercando di eseguire sia come mostrato?
Harry Johnston,

Mi dispiace così tanto, ho avuto un refuso nel percorso. Principalmente imbarazzato. Grazie per il pronto aiuto di tutti! Qual è la procedura, devo eliminare questa domanda? Oppure posso riformularlo e aggiungere una risposta che mostri che è possibile inserire virgolette attorno all'argomento in / log switch di robocopy?
slm,

Nessun motivo per eliminare @slm. Se uno dei commenti sopra ti ha aiutato a trovare il problema, chiedi loro di pubblicarlo come risposta, quindi segna la risposta corretta. Se il problema era qualcosa di completamente diverso, scrivi la tua risposta e contrassegnala come risposta in modo che i futuri ricercatori sappiano che se hanno un problema simile.
music2myear,

Risposte:


11

Se è necessario fornire un percorso che includa spazi per l'opzione / log del robot, è possibile farlo in questo modo:

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

Ottengo un errore non valido: parametro # 11 "/ registro". L'ho aggiunto alla fine di un comando altrimenti funzionante.
Andrew S,

Non lavoro più dove supporto Windows, quindi non ho modo di provarlo.
slm

Assicurarsi che esista la directory principale del file di registro. Robocopy non lo creerà e, purtroppo, si lamenta del parametro cmdline se la directory non esiste.
Mojo,

4

Esistono quattro modi per accedere come documentazione Powershell

/log:<LogFile> : Scrive l'output di stato nel file di registro (sovrascrive il file di registro esistente).

  • per esempio: robocopy "c:\a" "c:\b" /log:"c:\copy_log.log"

/log+:<LogFile> : Scrive l'output di stato nel file di registro (accoda l'output al file di registro esistente).

  • per esempio: robocopy "c:\a" "c:\b" /log+:"c:\copy_log.log"

/unilog:<LogFile> : Scrive l'output di stato nel file di registro come testo Unicode (sovrascrive il file di registro esistente).

  • per esempio: robocopy "c:\a" "c:\b" /unilog:"c:\copy_log.log"

/unilog+:<LogFile> : Scrive l'output di stato nel file di registro come testo Unicode (accoda l'output al file di registro esistente).

  • per esempio: robocopy "c:\a" "c:\b" /unilog+:"c:\copy_log.log"

Per maggiori dettagli https://technet.microsoft.com/en-us/library/cc733145(v=ws.11).aspx


Raccomanderò anche di aggiungere /teeswitch in quanto anche l'output della riga di comando dei prodotti e consente all'utente di vedere l'avanzamento della copia dei file anche nella riga di comando.
vibs2006,

1

Succede quando sono necessari privilegi di amministratore / o pop per creare file in quella directory

Quindi prova ad avere una directory log / temp e prova ad aggiungere il file di log in quella directory

$ mkdir C:\log

per esempio:

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

0

Se il percorso del file di registro contiene spazi o altri delimitatori di script, includerlo tra virgolette come suggerisce EDIT # 1 e @slm. Inoltre, si prega di notare l'uso di caratteri di escape come descritto in questa documentazione sugli script batch .


Sto riscontrando lo stesso problema dopo una migrazione Win 10 abbastanza disastrosa e indesiderata.
Marc
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.