Como copiar arquivos e manter a estrutura?

3

Eu tenho um arquivo de texto com uma lista de nomes de arquivos

c:\superawesome\lame.mp3
c:\noyoucant\wujuu.mp3
d:\bottle\water.obj

E eu quero copiar a mesma estrutura de arquivos em um local diferente ( e:\backup ). A estrutura resultante ficaria assim

e:\backup\superawesome\lame.mp3
e:\backup\noyoucant\wujuu.mp3
e:\backup\bottle\water.obj

Backup é uma pasta vazia. Eu tentei usar copy c:\superawesome\lame.mp3 e:\backup\superawesome\lame.mp3 e o mesmo usando xcopy

Como posso copiar a lista de arquivos e manter a estrutura de pastas original?

    
por chepe263 25.09.2014 / 21:21

2 respostas

2

@echo off
    setlocal enableextensions disabledelayedexpansion 

    set "target=e:\backup"

    for /f "usebackq delims=" %%a in ("TextFile.txt") do (
        md "%target%%%~pa" 2>nul
        copy /y "%%a" "%target%%%~pa"
    )

Para cada linha (arquivo) dentro da lista, crie, sob a pasta de destino, o mesmo caminho indicado na linha lida ( %%~pa é o caminho do elemento referenciado por %%a ). Em seguida, copie o arquivo lido para a pasta de destino

    
por 27.09.2014 / 11:13
0

Tente isso com um arquivo em lotes:

for /f "delims=" %%a in (TextFile.txt) do call :BeginCopy "%%a"
goto :end

:BeginCopy

set SrcFolder=%~1
set DestFolder=%SrcFolder:~7,-1%
echo %DestFolder%
xcopy /s /e /i /h /r /y %SrcFolder%  "e:\backup\%DestFolder%" 

goto :end

Para ler mais, visite: Xcopy

    
por 25.09.2014 / 21:35