1.复制C:\a\e.txt 文本文件到d:\b文件夹下面
【复制完的目录结构应该为d:\b\e.txt】
xcopy /y c:\a\e.txt d:\b\ >nul
2.复制C:\a文件夹及其内所有东西(包括隐藏,系统文件)到D:\b文件夹下面
【 a文件夹也要复制过去,也就是说,复制之后,a文件夹应该在b文件夹下】
xcopy /y /e /h c:\a d:\b\a\ >nul
3.复制C:\a文件夹内的所有东西到D:\b文件夹下面
【a文件夹不复制过去,只是把c,d这两个文件夹和e.txt这个文件复制过去】
xcopy /y /e /h c:\a d:\b\ >nul
第一个问题:
用强制性的命令更好,目录不存在自动创建
echo f|xcopy D:\aa\bb\cc.txt E:\aa\bb\cc.txt
第二个问题,同理:(假设这个txt文件为list.txt)
@echo off
for /f " usebackq tokens=1,* delims=:" %%i in ("list.txt") do echo f|xcopy %%i:%%j E:%%j
这样更好!
——sp@cai
它把a内的东西复制过去了,但是a没复制过去
::copy、xcopy不具备复制根目录的功能,复制到到a目录可以先创建再复制
md c:\b\a && xcopy /e /q /h /r /y c:\a c:\b\a
@echo off & title 根据列表拷贝文件夹 By 依梦琴瑶
::设置列表文件
set List=文件夹名.txt
::设置源文件主目录,路径最后无需添加斜杠
set SrcDir=H:
::设置文件夹保存至哪个目录
set SavDir=E:\新建文件夹
for /f "delims=" %%a in ('type "%List%"') do (
xcopy /s/e/h/y "%SrcDir%\%%~a\*" "%SavDir%\%%~nxa\"
)
pause代码已测试,一切正常。
if not exist e:\aa\bb md e:\aa\bb
copy D:\aa\bb\cc.txt E:\aa\bb
按新的要求,假设你的txt文件叫my.txt:
@echo off
for /f "tokens=*" %%i in (my.txt) do ( echo Copying %%i...
if not exist "e:\%%~pi" md “e:\%%~pi"
copy /y "%%i" "e:\%%~pi")