Board logo

标题: [文件操作] [已解决]批处理如何按列表复制文件夹? [打印本页]

作者: lanh    时间: 2019-7-25 17:58     标题: [已解决]批处理如何按列表复制文件夹?

需求:根据文件夹名字的列表,将硬盘中有列表名字的文件夹复制到指定位置?
例如
文件夹列表是
1
2
3
4
5
6
.
.
.
N
硬盘里面只有3,4,5名字的文件夹,每个文件夹下面也有很多文件。
怎么把他们筛出来,直接以文件夹的形式复制到其他地方去
列表是TXT格式
文件夹名称也不是例子中那么简单和有序
另外就是
列表里面还有很多硬盘中没有的文件夹名称
没有的不用管

求支招
本人小白一个
写命令的时候请不要省哦
谢谢
作者: JC_2019    时间: 2019-7-25 18:21

这个是对比删除,你看看,希望对你有帮助,http://bbs.bathome.net/thread-53419-1-1.html
作者: lanh    时间: 2019-7-25 18:32

单个文件用.JPG,我要复制文件夹用代表呀?

命令基本看懂了
一、二行是进行比对
第三行是删文件

这样思路发展下去
代码就这样么?

@echo off
for /f "delims=" %%i in ('type "指定.txt"') do (
    if exist "文件夹" (
        XCOPY /3 "%%i.jpg"== 引号这里用啥?    f:test
    )
)


纯小白。。
只是最近有些数据要筛,人工会死人。。。
所以想看看能不能用批处理直接复制过去
文件夹里面还有N多文件等我去筛呢


回复 2# JC_2019
作者: zaqmlp    时间: 2019-7-25 20:19

  1. @echo off
  2. set info=互助互利,支付宝扫码头像,感谢赞助
  3. rem 有问题,可加QQ956535081及时沟通
  4. title %info%
  5. cd /d "%~dp0"
  6. set "新目录=D:\backup"
  7. for /f "delims=" %%a in ('type "指定文件夹.txt"') do (
  8.     if exist "%%a\" (
  9.         echo;"%%a" --^> "%新目录%\%%a"
  10.         xcopy "%%a" "%新目录%\%%a\" /e /h /y
  11.     )
  12. )
  13. echo;%info%
  14. pause
复制代码

作者: lanh    时间: 2019-7-25 21:47

...
自己也刚解决

用的是这个

@echo off

::设置列表文件
set List=目录.txt

::设置文件夹保存至哪个目录
set SavDir=f:\test

for /f "delims=" %%a in ('type "%List%"') do (
xcopy /s/e/h/y "%%~a\*" "%SavDir%\%%~nxa\"
)
pause

回复 4# zaqmlp
作者: lanh    时间: 2019-7-25 21:52

说实话
你的命令行看不太懂
自己找到的还基本能明白每一行是干啥用

不过后面还有需求
真实的需求比现在的要复杂一点点
因为要复制的文件夹上面还有几层文件夹
如何实现我还不知道呢
现在我找到的命令只能放在最底层的文件夹里


嗯?说着说着,你有一个D:那一行,是判定整个盘下的文件夹么?

回复 4# zaqmlp




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2