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.