2009-06-12 19 views
184

Ho una cartella di archiviazione su una rete in cui tutti gli utenti memorizzeranno i loro dati attivi su un server. Ora quel server verrà sostituito da uno nuovo a causa di un problema, quindi devo copiare i file delle sottocartelle dalla vecchia cartella di archiviazione del server alla nuova cartella di archiviazione del server. Ho sotto ex:File batch per copiare i file da una cartella a un'altra cartella

da \ Oldeserver \ storage \ data & file a \ Nuovo server \ storage \ data & file.

+1

Suppongo tu stia parlando di un ambiente Windows? –

+1

@pluma [I file batch sono .bat. Sì, funzionano solo su Windows.] (Http://en.wikipedia.org/wiki/Batch_file) –

+1

@ HugoM.Zuleta, sono a conoscenza dei file .bat. Ma "file batch" non garantisce necessariamente un ambiente Windows. L'uso del termine è precedente a Windows (come i file .bat) e ho persino visto i novizi usare il termine per indicare "script di shell" in ambienti * nix. –

risposta

17

Si consiglia di dare un'occhiata a XCopy o RoboCopy che sono soluzioni piuttosto complete per quasi tutte le operazioni di copia di file su Windows.

+3

RoboCopy sembra essere migliore di XCopy perché xcopy richiede decisioni su file o cartelle. E non posso abbassarlo. Deve essere in grado di funzionare in modo completamente automatico. – Bitterblue

+0

@ mini-me so che è molto tardi, ma non riesco a trovare lo stesso interruttore pertinente. Ho finito per ricorrere a creare un file vuoto con lo stesso nome a cui sto copiando e quindi lo sovrascrivo. Se il file esiste già, non si preoccupa di chiedere se è un file o una directory. (Se si desidera la directory automatica, è possibile aggiungere un '/' al percorso e lo farà). Spero che questo aiuti le persone future! –

+2

@Eve Per riferimento, 'echo f | xcopy source destination/y' lo renderà automatico. Assegna a tutte le domande una "f" come risposta. Passerà anche le richieste di sovrascrittura (f è considerato come si, penso). – ndm13

0

Vedere lo strumento Windows basato su rsyncNASBackup. Sarà un vantaggio se conoscerai i comandi rsync.

348

xcopy.exe è sicuramente il tuo amico qui. È integrato in Windows, quindi il suo costo è nulla.

Proprio xcopy /s c:\source d:\target

Si sarebbe probabilmente desidera modificare un paio di cose; alcune delle opzioni che aggiungiamo includono anche:

  • /s/e - copia ricorsiva, inclusa la copia di directory vuote.
  • /v - aggiungere questo per verificare la copia rispetto all'originale. più lento, ma per il paranoico.
  • /h - copia sistema e file nascosti.
  • /k - copia gli attributi di sola lettura insieme ai file. altrimenti, tutti i file diventano di lettura-scrittura.
  • /x - se si preoccupano delle autorizzazioni, è possibile che si desideri /o o /x.
  • /y - non chiedere prima di sovrascrivere i file esistenti.
  • /z - se pensate che la copia potrebbe fallire e volete riavviarla, usate questo. Mette un marcatore su ogni file mentre copia, quindi puoi eseguire nuovamente il comando xcopy per riprenderlo dal punto in cui era stato interrotto.

Se pensate che il xcopy potrebbe non riuscire parzialmente attraverso (come quando si copia su una connessione di rete a fiocchi), o che si deve fermare e desidera continuare in un secondo momento, è possibile utilizzare xcopy /s/z c:\source d:\target.

Spero che questo aiuti.

+14

si consiglia di citare il pad sorgente e target ... – VDP

+1

@Iavinio Chiede il file o la directory quando copia un archivio. C'è un modo per sopprimerlo? – Bitterblue

+0

Ciao @ mini-me: ho scoperto che se si tratta di una directory, puoi specificare un carattere "/" finale e non vedrai quel messaggio. – DaveDev

37

Giusto per essere chiari, quando si utilizza xcopy /s c:\source d:\target, inserire "" attorno a c: \ source e d: \ target, altrimenti si ottiene un errore.

cioè se ci sono spazi nel percorso vale a dire se si dispone di:

"C:\Some Folder\*.txt" 

ma non necessario se si dispone di:

C:\SomeFolder\*.txt 
31

Il mio preferito di dati di backup sono:

ROBOCOPY "C:\folder" "C:\new_folder" /mir 

/mir è per specchio. Puoi anche usare/mov per spostare i file. Riproduce esattamente la stessa cartella. Può cancellare/sovrascrivere i file secondo necessità. Funziona alla grande per me. È più veloce di xcopy/copy. È anche integrato in Windows.

Fonte: '? Specificare un nome di file o il nome della directory sul bersaglio (F = File, D = directory)' http://technet.microsoft.com/en-us/library/cc733145.aspx

+2

Io sostengo questo. È molto veloce molto più veloce di xcopy – Ike

+0

C'è un modo per rimuovere ricorsivamente thumbs.db simile a questo? – drooh

11

di bypassare il Prompt con xcopy, è possibile effettuare le seguenti ...

echo f | xcopy /f /y srcfile destfile

o per quelli di noi solo la copia di grandi sottostrutture/cartelle:

uso/i che specifica destinazione deve essere una directory se la copia di più di un file

+0

(echo "f" per i file o "D" per le directory) – JinSnow

+0

prova a farlo ora e non funziona - ricevo sempre i prompt quando provo a copiare un file in un'altra directory. Usando Win 10 se questo lo interessa affatto echo f | xcopy/f/y "My.dll" "C: \ myFolder \ My.dll". L'ho provato con una combinazione di altri switch senza alcun risultato (e maiuscola F) – Prof

0

se si desidera copiare il file non utilizzare il percorso assoluto, percorso relativo in altre parole:

non dimenticate di scrivere slash nel percorso E nON tagliare (^^)

esempio:

copy children-folder\file.something .\other-children-folder 

PS: percorso assoluto possono essere recuperate uso questi caratteri jolly chiamati "parametri batch"

@echo off 
    echo %%~dp0 is "%~dp0" 
    echo %%0 is "%0" 
    echo %%~dpnx0 is "%~dpnx0" 
    echo %%~f1 is "%~f1" 
    echo %%~dp0%%~1 is "%~dp0%~1" 

controllo documentazione qui circa copia: https://technet.microsoft.com/en-us/library/bb490886.aspx

e anche qui per documentazione dei parametri batch: https://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/percent.mspx?mfr=true

Problemi correlati