Condividi tramite

Test errori copia con Robocopy

Anonimo
2021-10-19T08:06:25+00:00

Salve, sto usando robocopy per copiare da un dispositivo ad un altro e vorrei aggiungere nel file .bat un comando che mi evidenzi il risultato finale (presenza/assenza di qualsiasi errore), come va scritto?

esempio:

rem ...... copia in corso ... attendere

robocopy D:\XXX F:\YYY /e /z /XJ /W:0 /R:0

if "errors" echo ERRORI

else echo OK

rem

pause

Grazie.

Windows per utenti privati | Windows 10 | File, cartelle e archiviazione

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

8 risposte

Ordina per: Più utili
  1. Anonimo
    2021-10-19T13:24:46+00:00

    Ciao anche a Spigolo.

    Del numero più alto già lo sapevo, ma a me interessa avere evidenza se l'esecuzione è terminata bene o male, se poi è terminata con errori potrò eventualmente approfondire conoscendone il codice corrispondente che echo dovrebbe indicarmi.

    Le informazioni sono spesso fuorvianti (?), dal link vedo:

    <<

    Per passare all'etichetta ok se il valore della variabile di ambiente ERRORLEVEL è minore o uguale a 1, digitare: Copia

    if %errorlevel% LEQ 1 goto okay
    

    >>

    Ricapitolo:

    rem ...... copia in corso ... attendere

    robocopy D:\XXX F:\YYY /e /z /XJ /W:0 /R:0

    if ...???... GEQ 8 (echo *** ERRORI *** cod....???...  & goto end)

    else (echo *** OK ***)

    rem

    :end

    pause

    cosa immetto in sostituzione dei due "...???...?
    grazie.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Spigolo 135.3K Punti di reputazione Moderatore volontario
    2021-10-19T11:13:30+00:00

    rem ...... copia in corso ... attendere

    robocopy D:\XXX F:\YYY /e /z /XJ /W:0 /R:0

    if %ERRORLEVEL% GEQ 8 echo *** ERRORI *** cod.%ERRORLEVEL%  & goto end

    IF ERRORLEVEL 2 ECHO Si è verificato l'errore %ERRORLEVEL% nella copia

    Se vuoi costruire una serie di test delle varie condizioni devi partire dal numero più alto e scendere.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Spigolo 135.3K Punti di reputazione Moderatore volontario
    2021-10-19T10:52:36+00:00

    Oltre a quanto indicato da Simone (che saluto) il comando esatto per testare quelle occorrenze è:

    IF ERRORLEVEL ...

    https://docs.microsoft.com/it-it/windows-server/administration/windows-commands/if

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2021-10-19T10:48:33+00:00

    Ciao Simone, conosco (sono descritti in rete) i cod.errore di ROBOCOPY, vanno da 0 a 8 o 16 (se Serious error).

    Non essendo molto esperto di script bat volevo conoscere la corretta sintassi, che potrebbe essere questa:

    rem ...... copia in corso ... attendere

    robocopy D:\XXX F:\YYY /e /z /XJ /W:0 /R:0

    if %ERRORLEVEL% GEQ 8 echo *** ERRORI *** cod.%ERRORLEVEL%  & goto end

    else echo *** OK ***

    rem

    :end

    pause

    è corretto?
    grazie.

    La risposta è stata utile?

    0 commenti Nessun commento
  5. Anonimo
    2021-10-19T08:37:59+00:00

    Ciao gmarcom_996

    Penso che devi usare i codici errori lanciati da robocopy:

    Return codes used by the Robocopy utility - Windows Server | Microsoft Docs

    Se è presente un errore dovrebbe stamparlo in automatico.

    Per questo tipo di richieste chiedi direttamente al forum sviluppatori: Forum Msdn (microsoft.com)

    Buona giornata!

    La risposta è stata utile?

    0 commenti Nessun commento