2011-09-05 9 views
5

credo di voler copiare questo file C:\Majid\File\text.txt a D:\Copied (C:\Majid\File\text.txt ---> D:\Copied)Copia file con esatta struttura in un'altra directory usando XCopy

voglio utilizzare Xcopy per copiare il file con la sua completa directory in D:\Copied, quindi dovrei avere qualcosa di simile --->D:\Copied\Majid\File\text.txt, come si vede la lettera di unità viene rimosso e tutta l'altra directory viene creata nella directory di destinazione.

Come posso eseguire questa azione con XCopy?

+0

hai intenzione di eseguire questo comando manualmente dalla console o da un programma creato da te? Quale lingua? Se l'esecuzione manuale questo non appartiene qui in SO! –

+1

Non sono d'accordo Davide, penso che questa sia una domanda ragionevole. –

risposta

0

Eccolo:

set sourceFolder="C:\Users\User\Desktop\34\*" 
set destinationFolder=%sourceFolder:~3,-1% 

xcopy %sourceFolder% "D:\xcopied%destinationFolder%" /s /i /r 

sulla base di @ Daniel e risposte @WahidBitar. Grazie uomini;)

1

vedono questo:

XCOPY COMMAND

... Sintassi xcopy origine [destinazione] [/ w] [/ p] [/ c] [/ v] [/ q] [/ f ] [/ l] [/ g] [/ d [: mm-gg-aaaa]] [/ u] [/ i] [/ s [/ e]] [/ t] [/ k] [/ r] [/h] [{/ a |/m}] [/ n] [/ o] [/ x] [/ escludi: file1 [+ [file2]] [+ [file3]] [{/ y |/-y} ] [/ z] ...

quello che troverete interessante in quella pagina è questo:

/s: copia le directory e le sottodirectory, a meno che non siano vuote. Se si omette /s, xcopy funziona all'interno di una singola directory.

+0

Ciao Davide, ho un'applicazione che controlla una directory per i nuovi file, dopo di che puoi eseguire un'applicazione per quei file, voglio usare Xcopy per questo. Il comando/s non funzionerà. Immagina che il mio file sia C: \ Majid \ Text.txt, se io uso/i, copia solo text.txt e vince 'crea la cartella Majid nella cartella di destinazione. Cosa dovrei fare? – Nofuzy

1
set sourceFolder="C:\test\new folder\text.txt" 
set destinationFolder=%sourceFolder:~3,-1% 
echo %destinationFolder% 

xcopy %sourceFolder% "D:\xcopied%destinationFolder%" 

Qualcosa del genere potrebbe funzionare. Rimuovere i primi caratteri della fonte ("C:"), quindi aggiungere i caratteri per la cartella di destinazione ("D: \ xcopied").

+0

Ciao Daniela, Bella Risposta, Ma farà una domanda durante l'esecuzione. Chiederà alla directory di destinazione è un nome di file o una directory, e dovrei inserire F o D. Non voglio vedere questo messaggio e impostare la sua opzione predefinita a D. Come a quel Daniel? Grazie Per la tua bella risposta di nuovo :) – Nofuzy

-1

provare qualcosa di simile:

System.Diagnostics.Process.Start 
("XCOPY.EXE", "/E /I /Y " + filename + " " 
+ pfadauswahl + "Backup\\" + dt.ToString("yyyy-MM-dd") 
+ "\\UserData\\" + File_Name + "* "); 

con la stella al termine della linea, mi sono liberato della questione se un file o una directory .. dal momento che non è stato specificato nulla su come si desidera usarlo ... ecco la soluzione per C#

+0

La domanda riguarda XCopy dalla riga di comando. Non chiede nulla su C# o 'Processo.Start', e la tua risposta è piena di variabili e chiamate di funzioni che non significano nulla dalla riga di comando. Non sono sicuro di come questo dovrebbe rispondere alla domanda posta qui. –

1

questo era un bene per me

xcopy $(SolutionDir)Libs\YourFolder\* $(TargetDir)YourFolder /s /i /r 

source

Problemi correlati