标题: [文件操作] [已解决]批处理怎样在多个文件夹中有选择地批量复制指定文件? [打印本页]
作者: cyucyu 时间: 2010-3-13 23:50 标题: [已解决]批处理怎样在多个文件夹中有选择地批量复制指定文件?
在 D:\EmpireServer\web\flash 目录下:
有a文件夹和b文件夹,还有文件1.txt 它里面记录了两行数据,分别是 1.swf和2.swf
a文件夹里面有1.swf b.swf m.swf 等等很多个文件,b文件夹里面有2.swf 6.swf m888.swf 等等很多个文件,
现在我想用批处理把1.txt中所记录的1.swf和2.swf 从ab这两个文件夹里面复制到E:/images 下里面,并且要自动建立a文件夹和b文件夹,并复制1.swf和2.swf到对应的文件夹。
还有一个说明的是a和b文件夹这两个名字只是举例,实际应用中要随机变化。
下面是我正在使用的批量处理代码,但它不够智能,没能达到我上面所说的效果。- @echo off
- for /f "tokens=*" %%a in (1.txt) do (
- for /f "tokens=*" %%i in ('dir /s/b/a-d %%a') do (
- copy "%%~dpnxi" 1
- )
- )
复制代码
[ 本帖最后由 cyucyu 于 2010-3-14 21:30 编辑 ]
作者: test2010 时间: 2010-3-14 11:09
- @echo off
- set NameList="1.swf" "2.swf"
- set Source="D:\EmpireServer\web\flash"
- set Dest="E:\images"
-
- cd /d %Source%
- for /f "delims=" %%f in ('dir /a:-d /s /b %NameList%') do (
- for %%u in ("%%f\..") do (
- md %Dest%\"%%~nxu" 2>nul
- copy "%%f" %Dest%\"%%~nxu"
- )
- )
- pause
复制代码
[ 本帖最后由 test2010 于 2010-3-14 11:11 编辑 ]
作者: cyucyu 时间: 2010-3-14 14:00
楼上的大哥你好!
set NameList="1.swf" "2.swf"
因为这这两个文件只是举例,实际应用中有很多个文件,文件名都记录在1.txt这个文件里面。
能不能直接读取1.txt里面的文件名呀。
麻烦你指教一下。
作者: BatCoder 时间: 2010-3-14 15:31
- @echo off
- set "Source=D:\EmpireServer\web\flash"
- set "Dest=E:\images"
-
- cd /d "%Source%"
- for /f "delims=" %%a in (1.txt) do (
- for /f "delims=" %%f in ('dir /a-d /s /b "%%a"') do (
- for %%u in ("%%f\..") do (
- md "%Dest%\%%~nxu" 2>nul
- copy "%%f" "%Dest%\%%~nxu"
- )
- )
- )
复制代码
作者: cyucyu 时间: 2010-3-14 17:32
谢谢两位大哥。特别谢谢 BatCoder 大哥。你写的很好用。
但还有一点点小问题。
比如在 D:\EmpireServer\web\flash\minjie 这个目录下有A和B两个子目录。
复制到E:\images这里的时候目录结构就变了。
如果复制到E盘后目录结构是E:\images\minjie\a和E:\images\minjie\b的话,这样就完美了。
现在复制后的结果是E:\images\a和E:\images\b
现在我想要的是和D:\EmpireServer\web\flash\下目录结构保持一致,不管它的目录和子目录有几个。
作者: BatCoder 时间: 2010-3-14 19:46
- @echo off
- setlocal enabledelayedexpansion
- set "Source=D:\EmpireServer\web\flash"
- set "Dest=E:\images"
-
- cd /d "%Source%"
- for /f "delims=" %%a in (1.txt) do (
- for /f "delims=" %%f in ('dir /a-d /s /b "%%a"') do (
- set "str=%%~dpf"
- set "folder=!str:%Source%=!"
- md "%Dest%!folder!%%~nxu" 2>nul
- copy "%%f" "%Dest%!folder!%%~nxu"
- )
- )
复制代码
作者: cyucyu 时间: 2010-3-14 21:26
谢谢 BatCoder 大哥。非常感谢您。
终于可以完美解决了一直困扰我的问题。
作者: chqi2000 时间: 2010-7-15 11:07 标题: 我按照这个批处理的结果有几个目录,请高手解答一下!
我按照这个程序运行后,怎么出现了两个文件夹
一个文件夹是我需要的
还有一个文件夹下面有多个子目录,每个子目录还有重复的文件
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |