2010-11-01 21:50:02 +0000 2010-11-01 21:50:02 +0000
72
72

Commmand line commando om de hele map (inclusief map) te kopiëren naar een andere map

met behulp van de commandoregel, ik wil graag de ene map naar de andere kopiëren. Er is bijvoorbeeld directory C:/test en C:/test2.

Ik wil C:/test naar C:/test2 kopiëren zodat het resultaat C:/test2/test

is. Alles wat ik tot nu toe heb gevonden zal alleen de bestanden en mappen in C:/test naar C:/test2 kopiëren, maar laat de bovenliggende directory weg.

Antwoorden (10)

52
52
52
2010-11-01 21:52:22 +0000

Probeer XCOPY te gebruiken met de /E schakelaar. Meer info hier .

Ik heb deze informatie in jaar niet vanuit mijn hersenen hoeven te benaderen!

UPDATE

De documentatie zegt dat het alle bestanden en subdirectories uit de brondirectory kopieert (wat betekent dat de bovenliggende directory niet is aangemaakt), dus je zou eerst test in C:\test2 moeten aanmaken en dan XCOPY moeten gebruiken.

21
21
21
2015-11-22 21:23:05 +0000

Gebruik ROBOCOPY als u back-up scripts maakt. xcopy is afgeschreven en zal waarschijnlijk in de nabije toekomst geleidelijk aan buiten gebruik worden gesteld. robocopy kan alles doen wat xcopy kan. Het is ook flexibeler en betrouwbaarder. Het maken van scripts met robocopy zal deze toekomstbestendig maken.

  • *
  1. Gebruik robocopy om eenvoudig mappen te kopiëren. Het robocopie-commando vervangt het xcopie-commando. Het kan snel hele mappen kopiëren zonder dat u zich zorgen hoeft te maken over het definiëren van de inhoud. Bijvoorbeeld, om alle inhoud van de C:\tools map te kopiëren naar de nieuwe map D:backuptools, voer het volgende in:

    1. Spiegel een map. Het spiegelen van een map is geweldig voor het maken van back-ups. De spiegeloptie van robocopy zal alle inhoud van de bron naar de bestemming kopiëren. Het zal dan alles verwijderen wat niet bestaat op de bestemming bij de bron. Dit zorgt ervoor dat uw back-up alleen de laatste versies van uw bestanden heeft. Bijvoorbeeld, om te spiegelen van C:UsersMy Documents naar D:backupMy Documents, voer het volgende in:[4]
    1. Schakel het herstarten in. U kunt de mogelijkheid opnemen om het proces opnieuw op te starten in het geval dat de verbinding tussentijds wordt verbroken.
    1. Log het kopieerproces. Met robocopy kunt u een logbestand maken. Dit kan u helpen bij het lokaliseren van problemen of het genereren van een archief van wat gekopieerd is.
8
8
8
2010-11-02 03:09:24 +0000

Ik raad robocopy aan boven xcopy , omdat het veel meer opties heeft, waaronder het intact houden van tijdstempels, wat ik essentieel vind.

Robocopy moet worden toegevoegd op XP/2003, maar het is standaard vanaf Vista.

Ik gebruik eigenlijk meestal xxcopy , maar de 64-bits versie is niet gratis.

5
5
5
2012-06-22 06:40:49 +0000
XCOPY SourceDrive: DestinationDrive: /S /E

Bijvoorbeeld als u E:-schijfgegevens moet kopiëren naar H:-schijf (externe harde schijf) via de opdrachtregel of vanuit de xboot-opdrachtomgeving.

xboot:\>XCOPY E:\ "H:\BackupFolder\" /S /E
3
3
3
2016-04-29 18:29:05 +0000

Als de oorspronkelijke vraag is waar ik een antwoord op zocht, dan heb ik, en natuurlijk niemand hierboven, een duidelijke oplossing gevonden.

Wat ik zoek is het kopiëren van de testmap naar de test2-directory zonder deze opnieuw in te hoeven typen. Zoiets als

xcopy /isvy c:\test d:\test2

waar d:\test2\test niet bestaat voor de kopie maar wel erna. Dit zou een tweede keer besparen op een foutieve test in het bestemmingspad. Het bovenstaande commando zal alle bestanden en eventuele mappen naar test2 kopiëren, maar zal de testmap niet aanmaken.

Tot nu toe is

xcopy /isvy c:\test d:\test2\test

echt de enige manier die ik heb gevonden om deze klus te klaren. Nogmaals, als je problemen hebt met typen is er geen garantie dat de bron- en bestemmingsdirectory’s overeenkomen.

Een alternatief om dit te corrigeren is

set mydir=test&&xcopy /isvy c:\%mydir% c:\test2\%mydir%

Dit stelt de bestemmingsdirectory in de variabele mydir in en gebruikt dan die variabele in zowel het bron- als het bestemmingspad. Als je de variabele verkeerd typt krijg je of een fout of de doelmap zal waarschijnlijk % hebben aan het begin en einde.

Het is langer om te typen maar minder kans om de verkeerde namen te krijgen. Ze zullen wel merkbaar zijn.

1
1
1
2016-08-18 22:26:31 +0000
xcopy SWITCHES SOURCE DESTINATION

waar SWITCHES kan zijn:

  • Om de hele mappenstructuur te kopiëren:

  • Om bestanden in bestemming te overschrijven (voor het geval de doelmap al bestaat):

  • Om te overschrijven en ook te kopiëren met ACL+Attribute:

Meest geschikt voor uw koffer:

xcopy /hievry C:\test C:\test2\test

0
0
0
2017-07-24 12:06:12 +0000

Ik had een soortgelijke situatie waarin ik een aantal mappen moest kopiëren, inclusief de namen van de mappen naar een locatie van bestemming, en hoopte dat deze vraag met de markering zou helpen, maar dat doet het echt niet.

Ten eerste, er zijn zeker gelegenheden waar men deze mogelijkheid nodig zou hebben en ik kwam er een tegen toen ik mappen moest kopiëren van C:\Windows\GAC_MSIL. Windows Verkenner weigert deze map te tonen, dus je moet een commando prompt gebruiken.

Als je bekend bent met de GAC map, zou je weten dat de namen van de mappen niet triviaal zijn en makkelijk fout kunnen gaan als je je vergist.

Dus het vooraf aanmaken van de map is niet echt een optie - tenzij je een script gebruikt - die ik uiteindelijk heb gebruikt, omdat dit de enige echte oplossing was.

Dump eerst de mappen die je wilt kopiëren naar een tijdelijk bestand, dit is meestal gebaseerd op een of ander patroon b.v.

dir /B policy* > Folders.txt

Dan loop over de items in de dump en kopieer naar de bestemming. Xcopy zorgt voor het aanmaken van een map als je het bestemmingsargument eindigt met een backslash ()

for /F "tokens=*" %%A in (Folders.txt) do xcopy /E /S %%A C:\Dest\%%A\

Zet beide commando’s in een batchbestand en voer ze uit.

Nu als alleen xcopy of robocopy dit ingebouwd heeft.

0
0
0
2018-12-07 17:07:00 +0000

Ik ben tot een functioneel alternatief antwoord op uw vraag gekomen.

Ten eerste, met FORFILES met /S parameter, verleent dat elke subdirectory in C:\test zal worden bereikt.

Ten tweede, met /C parameter, is het mogelijk om een keten van commando’s te starten met native variabelen, wat het mogelijk maakt om de identic directories op de bestemming aan te maken, en DAN de bestanden naar binnen te kopiëren, met behulp van twee conditionele structuren.

De eerste voorwaardelijke structuur @isdir==TRUE (zorg ervoor dat je hoofdletters gebruikt), maakt het mogelijk om directories alleen van de broncode te krijgen, en ze dan op het einde te maken met MKDIR [path]\@relpath.

Ten slotte zorgt de tweede ervoor dat het alleen werkt met bestanden met @isdir==FALSE, en dan krijgt het COPY commando gewoon de klus geklaard, waarbij alle bestanden worden bereikt met het FORFILES commando, waarbij [path]@relpath als bestemming wordt ingesteld, om de bestanden te kopiëren naar de zojuist aangemaakte mappen.

forfiles /s /c " cmd /c ( if @isdir==TRUE mkdir C:\test\@relpath ) && ( if @isdir==FALSE copy @file C:\test2\@relpath)"

Hoop die iedereen hier in de buurt helpt.

0
0
0
2018-05-15 05:24:03 +0000

XCOPY SourceDrive: DestinationDrive: /S /E

-2
-2
-2
2010-11-02 05:24:21 +0000

Dit zal dat doen van de GUI, weet niet hoe ze het doen.

“…klein programma zal u toelaten om de "uit directory” en “in directory” te selecteren, en het zal doorgaan om ALLEEN de directory structuur te kopiëren.“ http://www.rjlsoftware.com/software/utility/treecopy/