| Precedente :: Successivo   | 
	
	
	
		| Autore | 
		Messaggio | 
	
	
		valyfilm Dio minore
  
 
  Registrato: 08/10/10 01:07 Messaggi: 924 Residenza: Forlì-Cesena
  | 
		
			
				 Inviato: 28 Apr 2025 22:36    Oggetto: comandi DOS per copiare | 
				     | 
			 
			
				
  | 
			 
			
				Ciao, ho un PC con Windows 10. Qualcuno conosce i comandi DOS (credo si dica così) giusti per copiare da un supporto ad un altro? 
 
Partiamo da una cosa semplice. Voglio copiare ciò che ho nel disco I nel disco G. Vado in DOS, o in altre parole nel prompt dei comandi, intendo la pagina nera, e scrivo robocopy "I:\" "G:\nome cartella"   Va bene?
 
Devo creare una cartella in G perché funzioni, giusto?
 
Ebbene, appare un messaggio che dice che non riesce a trovare la destinazione su cui copiare. Perché?
 
Sono stato ore a farmi aiutare da Chat GPT senza risolvere, fino allo sfinimento. Ovviamente stando sempre attento a non sbagliare a scrivere. | 
			 
		  | 
	
	
		| Top | 
		 | 
	
	
		  | 
	
	
		Homer S. Dio Kwisatz Haderach
  
  Registrato: 24/12/21 10:59 Messaggi: 7581 Residenza: Ormai ci sono solo io qui in pianta stabile, che lo chiedete a fare?
  | 
		 | 
	
	
		| Top | 
		 | 
	
	
		  | 
	
	
		valyfilm Dio minore
  
 
  Registrato: 08/10/10 01:07 Messaggi: 924 Residenza: Forlì-Cesena
  | 
		
			
				 Inviato: 29 Apr 2025 13:46    Oggetto:  | 
				     | 
			 
			
				
  | 
			 
			
				| E' troppo complicato per me. Comunque ho notato che le istruzioni non parlano di virgolette. Ma se il nome di un file ha spazi? | 
			 
		  | 
	
	
		| Top | 
		 | 
	
	
		  | 
	
	
		Homer S. Dio Kwisatz Haderach
  
  Registrato: 24/12/21 10:59 Messaggi: 7581 Residenza: Ormai ci sono solo io qui in pianta stabile, che lo chiedete a fare?
  | 
		
			
				 Inviato: 29 Apr 2025 14:01    Oggetto:  | 
				     | 
			 
			
				
  | 
			 
			
				Se ci sono spazi, le virgolette sono d'obbligo. Piuttosto, ho notato che:
 
 
 	  | valyfilm ha scritto: | 	 		  | e scrivo robocopy "I:\" "G:\nome cartella" | 	  
 
Non sarà che dovresti togliere quel backslash? Ho cercato in Rete degli esempi e non ne ho visti che lo ponevano. | 
			 
		  | 
	
	
		| Top | 
		 | 
	
	
		  | 
	
	
		SverX Supervisor Macchinisti
  
  
  Registrato: 25/03/02 12:16 Messaggi: 11861 Residenza: Tokelau
  | 
		
			
				 Inviato: 29 Apr 2025 15:00    Oggetto:  | 
				     | 
			 
			
				
  | 
			 
			
				la sintassi di base è:
 
 
 	  | Codice: | 	 		  | robocopy <source> <destination> [<file>[ ...]] [<options>] | 	  
 
 
quindi se vuoi copiare tutti file dal disco I al disco G dentro la cartella 'backup' devi fare
 
 
 	  | Codice: | 	 		  | robocopy I:\ G:\backup /s | 	  
 
 
( /s alla fine indica di copiare tutte le sottocartelle, ricorsivamente ) | 
			 
		  | 
	
	
		| Top | 
		 | 
	
	
		  | 
	
	
		valyfilm Dio minore
  
 
  Registrato: 08/10/10 01:07 Messaggi: 924 Residenza: Forlì-Cesena
  | 
		
			
				 Inviato: 29 Apr 2025 18:26    Oggetto:  | 
				     | 
			 
			
				
  | 
			 
			
				| Ma se hai detto di non mettere quel backlash... | 
			 
		  | 
	
	
		| Top | 
		 | 
	
	
		  | 
	
	
		valyfilm Dio minore
  
 
  Registrato: 08/10/10 01:07 Messaggi: 924 Residenza: Forlì-Cesena
  | 
		
			
				 Inviato: 29 Apr 2025 18:41    Oggetto:  | 
				     | 
			 
			
				
  | 
			 
			
				Io voglio copiare tutto tranne quello che c'è già e tranne la cartella documenti. Senza le virgolette avevo già provato, poi Chat GPT mi ha detto di mettere le virgolette. Ho fatti tanti tentativi. Sto provando a eseguirlo anche come amminsitratore.
 
Io avevo imparato quanto segue.
 
 
Per copiare su un altro supporto solo i file nuovi e quelli modificati, senza sovrascrivere quelli già copiati, andare in DOS, in altre parole nel prompt dei comandi (la finestra nera) e scrivere:
 
robocopy "C:\origine" "D:\destinazione" /E /MIR /XO
 
\origine e \destinazione stanno per il percorso che devo indicare. Se invece devo copiare tutto C in D basta che scrivo “C:\” “D:\nome cartella”
 
Se il nome di un file ha gli spazi scriverlo fra virgolette o mettere \ prima di ogni spazio. Ovvio che è più veloce metterlo semplicemente tra virgolette.
 
/E: copia tutte le sottocartelle
 
      /MIR rispecchia la cartella di origine, eliminando i file nella destinazione che non ci sono più nella cartella di origine
 
      /XO esclude dalla copiatura i file già copiati nella cartella/supporto di destinazione, copiando solo quelli nuovi (cioè non già copiati) e quelli modificati
 
 
Per evitare che Robocopy faccia l’errore 5 (vuol dire che non riesce ad accede a un file) eseguirlo come amministratore.
 
Per bloccare Robocopy digitare Ctrl + C. | 
			 
		  | 
	
	
		| Top | 
		 | 
	
	
		  | 
	
	
		Homer S. Dio Kwisatz Haderach
  
  Registrato: 24/12/21 10:59 Messaggi: 7581 Residenza: Ormai ci sono solo io qui in pianta stabile, che lo chiedete a fare?
  | 
		
			
				 Inviato: 30 Apr 2025 07:44    Oggetto:  | 
				     | 
			 
			
				
  | 
			 
			
				 	  | valyfilm ha scritto: | 	 		  | Ma se hai detto di non mettere quel backlash... | 	  
 
L'ho supposto io sulla scorta della documentazione che ho citato, ma non uso robocopy quindi non so quale sia la sintassi specifica del tuo caso. | 
			 
		  | 
	
	
		| Top | 
		 | 
	
	
		  | 
	
	
		SverX Supervisor Macchinisti
  
  
  Registrato: 25/03/02 12:16 Messaggi: 11861 Residenza: Tokelau
  | 
		
			
				 Inviato: 30 Apr 2025 14:24    Oggetto:  | 
				     | 
			 
			
				
  | 
			 
			
				 	  | valyfilm ha scritto: | 	 		  | Io voglio copiare tutto tranne quello che c'è già e tranne la cartella documenti | 	  
 
 
/XO serve per escludere i file già copiati in precedenza (eXclude Older)
 
/XD serve per escludere le cartelle elencate (eXclude Directory)
 
 
quindi dipende da dove si trova la tua cartella documenti - mettiamo che sia C:\Documenti allora devi fare
 
 
 	  | Codice: | 	 		  | robocopy C:\ G:\backup /S /XO /XD C:\Documenti | 	  
 
 
però verifica dove si trova la cartella prima
 
 
  | 
			 
		  | 
	
	
		| Top | 
		 | 
	
	
		  | 
	
	
		jack.mauro Dio minore
  
  
  Registrato: 07/02/15 17:44 Messaggi: 558
 
  | 
		
			
				 Inviato: 30 Apr 2025 21:55    Oggetto:  | 
				     | 
			 
			
				
  | 
			 
			
				 	  | SverX ha scritto: | 	 		  /XO serve per escludere i file già copiati in precedenza (eXclude Older)
 
 | 	  
 
 
Robocopy di default sovrascrive i file già presenti nella cartella di destinazione solo quando hanno timestamp (data) diversi da quelli nella cartella di origine, senza bisogno di inserire /XO.
 
 
/XO non copierebbe c:\prova.txt del 15/01/2025 se g:\backup\prova.txt avesse data 20/01/2025, ma lo copierebbe se g:\backup\prova.txt avesse data 10/01/2025 (in questo caso l'origine sarebbe "newer").
 
 
Io personalmente uso questi parametri (R e W servono per le copie in rete):
 
 	  | Codice: | 	 		  | robocopy C:\ G:\backup /e /zb /np /R:10 /W:2 /XF *.tmp thumbs.db desktop.ini /XD "C:\Documenti" /nodcopy /tee /log:g:\log.txt | 	 
  | 
			 
		  | 
	
	
		| Top | 
		 | 
	
	
		  | 
	
	
		SverX Supervisor Macchinisti
  
  
  Registrato: 25/03/02 12:16 Messaggi: 11861 Residenza: Tokelau
  | 
		
			
				 Inviato: 01 Mag 2025 16:02    Oggetto:  | 
				     | 
			 
			
				
  | 
			 
			
				 	  | Citazione: | 	 		  | Robocopy di default sovrascrive i file già presenti nella cartella di destinazione solo quando hanno timestamp (data) diversi da quelli nella cartella di origine, senza bisogno di inserire /XO. | 	  
 
 
uhm, non trovo riscontro di questo comportamento nella documentazione di Microsoft    | 
			 
		  | 
	
	
		| Top | 
		 | 
	
	
		  | 
	
	
		jack.mauro Dio minore
  
  
  Registrato: 07/02/15 17:44 Messaggi: 558
 
  | 
		
			
				 Inviato: 02 Mag 2025 10:41    Oggetto:  | 
				     | 
			 
			
				
  | 
			 
			
				
 
 
Non so quanto sia imprecisa la documentazione microsoft ma ho fatto la prova in questo momento.
 
 
Queste le condizioni iniziali:
 
 	  | Codice: | 	 		  
 
R:\Test>dir /S
 
 Volume in drive R is RAMDISK
 
 Volume Serial Number is 0B3A-E000
 
 
 Directory of R:\Test
 
 
02/05/2025  10:21    <DIR>          .
 
02/05/2025  10:21    <DIR>          ..
 
02/05/2025  10:21    <DIR>          Src
 
02/05/2025  10:21    <DIR>          Dst
 
               0 File(s)              0 bytes
 
 
 Directory of R:\Test\Src
 
 
02/05/2025  10:21    <DIR>          .
 
02/05/2025  10:21    <DIR>          ..
 
20/05/2025  09:00                 0 test1.txt
 
20/05/2025  09:00                 0 test2.txt
 
20/05/2025  09:00                 0 test3.txt
 
               3 File(s)              0 bytes
 
 
 Directory of R:\Test\Dst
 
 
02/05/2025  10:21    <DIR>          .
 
02/05/2025  10:21    <DIR>          ..
 
               0 File(s)              0 bytes
 
 
     Total Files Listed:
 
               3 File(s)              0 bytes
 
               8 Dir(s)   1.029.431.296 bytes free
 
 
 | 	  
 
 
A questo punto eseguo la prima copia:
 
 
 	  | Codice: | 	 		  
 
R:\Test>robocopy r:\test\src r:\test\dst /s /np /tee /log:r:\Test\Copia1.txt
 
 
 Log File : r:\Test\Copia1.txt
 
 
-------------------------------------------------------------------------------
 
   ROBOCOPY     ::     Robust File Copy for Windows
 
 
-------------------------------------------------------------------------------
 
 
  Started : Fri May 02 10:25:54 2025
 
 
   Source = r:\test\src\
 
     Dest = r:\test\dst\
 
 
    Files : *.*
 
 
  Options : *.* /TEE /S /COPY:DAT /NP /R:1000000 /W:30
 
 
------------------------------------------------------------------------------
 
 
                           3    r:\test\src\
 
            New File                   0        test1.txt
 
            New File                   0        test2.txt
 
            New File                   0        test3.txt
 
 
------------------------------------------------------------------------------
 
 
               Total    Copied   Skipped  Mismatch    FAILED    Extras
 
    Dirs :         1         0         1         0         0         0
 
   Files :         3         3         0         0         0         0
 
   Bytes :         0         0         0         0         0         0
 
   Times :   0:00:00   0:00:00                       0:00:00   0:00:00
 
 
   Ended : Fri May 02 10:25:54 2025
 
 
 | 	  
 
 
Sono stati copiati tutti e tre i file.
 
 
 	  | Codice: | 	 		  
 
R:\Test>dir /s
 
 Volume in drive R is RAMDISK
 
 Volume Serial Number is 0B3A-E000
 
 
 Directory of R:\Test
 
 
02/05/2025  10:21    <DIR>          .
 
02/05/2025  10:21    <DIR>          ..
 
02/05/2025  10:21    <DIR>          Src
 
02/05/2025  10:21    <DIR>          Dst
 
02/05/2025  10:25             1.138 Copia1.txt
 
               1 File(s)          1.138 bytes
 
 
 Directory of R:\Test\Src
 
 
02/05/2025  10:21    <DIR>          .
 
02/05/2025  10:21    <DIR>          ..
 
20/05/2025  09:00                 0 test1.txt
 
20/05/2025  09:00                 0 test2.txt
 
20/05/2025  09:00                 0 test3.txt
 
               3 File(s)              0 bytes
 
 
 Directory of R:\Test\Dst
 
 
02/05/2025  10:21    <DIR>          .
 
02/05/2025  10:21    <DIR>          ..
 
20/05/2025  09:00                 0 test1.txt
 
20/05/2025  09:00                 0 test2.txt
 
20/05/2025  09:00                 0 test3.txt
 
               3 File(s)              0 bytes
 
 
     Total Files Listed:
 
               7 File(s)          1.138 bytes
 
               8 Dir(s)   1.029.427.200 bytes free
 
 
 | 	  
 
 
Ora altero le date dei file di ORIGINE in modo da avere un file "Older" ed uno "Newer"
 
 
 	  | Codice: | 	 		  
 
R:\Test>dir /s
 
 Volume in drive R is RAMDISK
 
 Volume Serial Number is 0B3A-E000
 
 
 Directory of R:\Test
 
 
02/05/2025  10:21    <DIR>          .
 
02/05/2025  10:21    <DIR>          ..
 
02/05/2025  10:21    <DIR>          Src
 
02/05/2025  10:21    <DIR>          Dst
 
02/05/2025  10:25             1.138 Copia1.txt
 
               1 File(s)          1.138 bytes
 
 
 Directory of R:\Test\Src
 
 
02/05/2025  10:21    <DIR>          .
 
02/05/2025  10:21    <DIR>          ..
 
20/05/2025  09:00                 0 test1.txt
 
10/05/2025  09:00                 0 test2.txt
 
30/05/2025  09:00                 0 test3.txt
 
               3 File(s)              0 bytes
 
 
 Directory of R:\Test\Dst
 
 
02/05/2025  10:21    <DIR>          .
 
02/05/2025  10:21    <DIR>          ..
 
20/05/2025  09:00                 0 test1.txt
 
20/05/2025  09:00                 0 test2.txt
 
20/05/2025  09:00                 0 test3.txt
 
               3 File(s)              0 bytes
 
 
     Total Files Listed:
 
               7 File(s)          1.138 bytes
 
               8 Dir(s)   1.029.410.816 bytes free
 
 | 	  
 
 
Ora eseguo la seconda copia, che mi aspetto copiare il file "Older", il "Newer" e saltare il file con timestamp uguale.
 
 
 	  | Codice: | 	 		  
 
R:\Test>robocopy r:\test\src r:\test\dst /s /np /tee /log:r:\Test\Copia2.txt
 
 
 Log File : r:\Test\Copia2.txt
 
 
-------------------------------------------------------------------------------
 
   ROBOCOPY     ::     Robust File Copy for Windows
 
 
-------------------------------------------------------------------------------
 
 
  Started : Fri May 02 10:28:11 2025
 
 
   Source = r:\test\src\
 
     Dest = r:\test\dst\
 
 
    Files : *.*
 
 
  Options : *.* /TEE /S /COPY:DAT /NP /R:1000000 /W:30
 
 
------------------------------------------------------------------------------
 
 
                           3    r:\test\src\
 
            Older                      0        test2.txt
 
            Newer                      0        test3.txt
 
 
------------------------------------------------------------------------------
 
 
               Total    Copied   Skipped  Mismatch    FAILED    Extras
 
    Dirs :         1         0         1         0         0         0
 
   Files :         3         2         1         0         0         0
 
   Bytes :         0         0         0         0         0         0
 
   Times :   0:00:00   0:00:00                       0:00:00   0:00:00
 
 
   Ended : Fri May 02 10:28:11 2025
 
 | 	  
 
 
E infatti ha copiato solo 2 file, saltando test1 che era già presente e con la stessa data
 
 
 	  | Codice: | 	 		  
 
R:\Test>dir /s
 
 Volume in drive R is RAMDISK
 
 Volume Serial Number is 0B3A-E000
 
 
 Directory of R:\Test
 
 
02/05/2025  10:21    <DIR>          .
 
02/05/2025  10:21    <DIR>          ..
 
02/05/2025  10:21    <DIR>          Src
 
02/05/2025  10:21    <DIR>          Dst
 
02/05/2025  10:25             1.138 Copia1.txt
 
02/05/2025  10:28             1.101 Copia2.txt
 
               2 File(s)          2.239 bytes
 
 
 Directory of R:\Test\Src
 
 
02/05/2025  10:21    <DIR>          .
 
02/05/2025  10:21    <DIR>          ..
 
20/05/2025  09:00                 0 test1.txt
 
10/05/2025  09:00                 0 test2.txt
 
30/05/2025  09:00                 0 test3.txt
 
               3 File(s)              0 bytes
 
 
 Directory of R:\Test\Dst
 
 
02/05/2025  10:21    <DIR>          .
 
02/05/2025  10:21    <DIR>          ..
 
20/05/2025  09:00                 0 test1.txt
 
10/05/2025  09:00                 0 test2.txt
 
30/05/2025  09:00                 0 test3.txt
 
               3 File(s)              0 bytes
 
 
     Total Files Listed:
 
               8 File(s)          2.239 bytes
 
               8 Dir(s)   1.029.406.720 bytes free
 
 
 | 	  
 
 
Se avessi usato i parametri /XO o /XN, nella seconda copia non avrebbe copiato il file "Older" oppure il "Newer". Queste parole indicano lo stato del file di origine rispetto a quello di destinazione, non il fatto di "essere già esistente".
 
 
Spero di essere stato utile | 
			 
		  | 
	
	
		| Top | 
		 | 
	
	
		  | 
	
	
		SverX Supervisor Macchinisti
  
  
  Registrato: 25/03/02 12:16 Messaggi: 11861 Residenza: Tokelau
  | 
		
			
				 Inviato: 02 Mag 2025 10:59    Oggetto:  | 
				     | 
			 
			
				
  | 
			 
			
				grazie per il test, molto interessante!
 
 
e quindi in effetti avevo male interpretato la tua frase
 
 	  | Citazione: | 	 		  | Robocopy di default sovrascrive i file già presenti nella cartella di destinazione solo quando hanno timestamp (data) diversi da quelli nella cartella di origine, senza bisogno di inserire /XO. | 	  
 
 
perché senza /XO la copia sarà effettuata anche copiando i file con timestamp più vecchio di quelli già presenti nella destinazione, mentre per espressamente escludere questo si deve aggiungere l'opzione | 
			 
		  | 
	
	
		| Top | 
		 | 
	
	
		  | 
	
	
		jack.mauro Dio minore
  
  
  Registrato: 07/02/15 17:44 Messaggi: 558
 
  | 
		
			
				 Inviato: 02 Mag 2025 11:34    Oggetto:  | 
				     | 
			 
			
				
  | 
			 
			
				Esatto, di default robocopy copia quando:
 
- il file non esiste
 
- la data è più vecchia
 
- la data è più nuova
 
- la dimensione è diversa
 
e salta il file quando i metadati non sono stati modificati.
 
 
In ogni caso non va a guardare il contenuto del file, quindi non va bene per copiare ad esempio un contenitore di truecrypt che -volutamente- non modifica i metadati. | 
			 
		  | 
	
	
		| Top | 
		 | 
	
	
		  | 
	
	
		 |