如何复制文件并保留结构?

如何复制文件并保留结构?

我有一个包含文件名列表的文本文件

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

我想将相同的文件结构复制到不同的位置(e:\backup)。生成的结构如下所示

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

备份是一个空文件夹。我尝试过使用copy c:\superawesome\lame.mp3 e:\backup\superawesome\lame.mp3,同样使用xcopy

我如何复制文件列表并保留原始文件夹结构?

答案1

@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"
    )

对于列表内的每一行(文件),在目标文件夹下创建与读取行中指示的相同路径(%%~pa是所引用元素的路径%%a)。然后将读取的文件复制到目标文件夹

答案2

使用批处理文件尝试一下:

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

欲进一步了解,请访问:复制

相关内容