标题: 怎么根据txt中文件路径建立文件夹并复制文件
[打印本页]
作者: rokersong
时间: 2007-11-14 09:04
标题: 怎么根据txt中文件路径建立文件夹并复制文件
文本makefiles.txt内容如下:
E:\Digit_Photo_Frame\makefiles.txt
E:\Digit_Photo_Frame\src_Lite-On_111207\src_Lite-On_111207\libIPLAY\libSrc\audio\MAKE\Makefile
E:\Digit_Photo_Frame\src_Lite-On_111207\src_Lite-On_111207\libIPLAY\libSrc\audio\MAKE\Makefile.bak
E:\Digit_Photo_Frame\src_Lite-On_111207\src_Lite-On_111207\libIPLAY\libSrc\Bios\MAKE\makefile
。。。。。
。。。
。。
-------------------------------
@echo off
for /f %%a in (makefiles.txt) do (echo %%a && pause && @copy %%a e:\digit_photo_frame\make )
因为很多makefile文件,如果用上述for循环拷贝到一个文件夹make下会产生覆盖,
我的目的是在目标文件夹make下建立相应的父文件夹然后再按目录拷贝文件,比如:makefiles.txt中有一个路径是:E:\Digit_Photo_Frame\src_Lite-On_111207\src_Lite-On_111207\libIPLAY\libSrc\Bios\MAKE\makefile,我想在目标文件夹make里先建立Bios文件夹,再建立MAKE文件夹,最后把makefile文件拷贝到MAKE文件夹里面,不知道我的意思是不是够明确了,小弟后学末进,望赐教
[
Last edited by rokersong on 2007-11-14 at 09:06 AM ]
作者: abcd
时间: 2007-11-14 10:45
xcopy可以复制目录树的
作者: fastslz
时间: 2007-11-14 12:54
假设文件是E:\Digit_Photo_Frame\src_Lite-On_111207\src_Lite-On_111207\libIPLAY\libSrc\Bios\MAKE\makefile
想复制到目标e:\digit_photo_frame\make\Bios\makefile
是这意思吗?
如果是,这个恐怕做不到。
如果E:\Digit_Photo_Frame\src_Lite-On_111207\src_Lite-On_111207\libIPLAY\libSrc是固定的还可以用for筛选出makefile文件父目录的父目录名
[
Last edited by fastslz on 2007-11-14 at 12:57 PM ]
作者: 26933062
时间: 2007-11-17 08:16
这样
当只有一级父目录时,就只要这一级
c:\Digit_Photo_Frame\makefiles.txt
Digit_Photo_Frame\
当有两级或两级以上的父目录时,就取文件的上两级
E:\Digit_Photo_Frame\src_Lite-On_111207\src_Lite-On_111207\libIPLAY\libSrc\Bios\MAKE\makefile.txt
Bios\MAKE\
当父目录是根目录时,就直接复制文件到make文件夹
E:\makefile.txt
make\
::
@echo off&set wjj=make
for /f "delims=" %%a in (a.txt) do (
call :loop "%%~pa" "%%a"
)
pause&exit
:loop
setlocal
set /a n+=1
set num=%str%
for /f "tokens=%n%* delims=\" %%i in ("%~1") do (
set str=%%i
if not "%%j"=="" goto loop
)
set ok=%num%\%str%
if "%~1"=="\" set ok=%wjj%
if "%ok:~0,1%"=="\" set ok=%ok:~1%
md "%ok%">2nul
copy/y "%~2" "%wjj%\%ok%\%~nx2"
endlocal
goto :eof