找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 22853|回复: 12

[文件操作] 求助批处理批量复制指定文件夹及其下的文件

[复制链接]
发表于 2022-2-7 09:52:50 | 显示全部楼层 |阅读模式
  1. @echo off
  2. set "源文件夹=D:\工作量\2021年12月"
  3. set "目标文件夹=D:\111"
  4. for /f "delims=" %%a in ('dir /ad/b "%源文件夹%"') do (
  5.     xcopy "%源文件夹%\jpg" "%目标文件夹%\jpg" /s /y 2>nul
  6. )
  7. pause
复制代码
我有一个代码之前还挺好用,不知道为什么不能用了,要求是复制指定文件夹下的所有jpg文件夹,比如我的"源文件夹=D:\工作量\2021年12月" 有10个项目文件夹,每个文件夹都是按项目命名的,每个项目文件夹下有n个文件夹,里面肯定有叫jpg的文件夹,我想把这个月的文件夹-项目文件夹-jpg文件夹都拷贝出来,其他不要。
发表于 2022-2-7 10:01:24 | 显示全部楼层
回复 1# mfkdf


请参考Q-01观察一下哪行代码在报错以及详细的报错信息:
https://mp.weixin.qq.com/s/6lbb97qUOs1sTyKJfN0ZEQ
 楼主| 发表于 2022-2-7 10:18:08 | 显示全部楼层
本帖最后由 mfkdf 于 2022-2-7 10:20 编辑

回复 2# Batcher


    多谢指教,刚刚试了,没有任何错误提示,就是提示复制了0个文件.有多少个下级文件夹,就提示多少次,我确定目标文件夹和源文件夹路径都没问题,还有我要复制的是每个文件夹下都包含的jpg文件夹(不是jpg格式图片),麻烦帮我看看哪里有问题
发表于 2022-2-7 11:45:57 | 显示全部楼层
回复 3# mfkdf
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set "FromFolder=D:\工作量\2021年12月"
  4. set "ToFolder=D:\111"
  5. if not exist "%FromFolder%" (
  6.     echo 没有找到文件夹 "%FromFolder%"
  7. )
  8. if not exist "%ToFolder%" (
  9.     echo 没有找到文件夹 "%ToFolder%"
  10. )
  11. cd /d "%FromFolder%"
  12. for /f "delims=" %%i in ('dir /b /s /ad "jpg"') do (
  13.     set "OldFolder=%%i"
  14.     set "NewFolder=!OldFolder:%FromFolder%\=!"
  15.     if not exist "%ToFolder%\!NewFolder!" (
  16.         md "%ToFolder%\!NewFolder!"
  17.     )
  18.     xcopy /s /y "%%i" "%ToFolder%\!NewFolder!"
  19. )
复制代码
 楼主| 发表于 2022-2-7 12:00:29 | 显示全部楼层
回复 4# Batcher


   这个好像不行,闪一下就没了,我前面发的那个问题出在哪里我基本搞清楚了,就是不知道怎么改,我的源路径下面是每个项目的文件夹,每个项目文件夹下才有jpg文件夹,也就是说xcopy source "%源文件夹%\jpg" "%目标文件夹%"\jpg /s /y 2>nul这里要写的有问题,可我不知道怎么改
发表于 2022-2-7 12:03:45 | 显示全部楼层
回复 5# mfkdf


请参考Q-04把4楼bat文件保存为ANSI编码:
https://mp.weixin.qq.com/s/6lbb97qUOs1sTyKJfN0ZEQ

如果仍有问题,请参考Q-01观察一下哪行代码在报错以及详细的报错信息:
https://mp.weixin.qq.com/s/6lbb97qUOs1sTyKJfN0ZEQ
 楼主| 发表于 2022-2-7 12:12:19 | 显示全部楼层
本帖最后由 mfkdf 于 2022-2-7 12:26 编辑

回复 6# Batcher
  1. @echo off
  2. set "FromFolder=E:\2022年01月"
  3. set "ToFolder=D:\111"
  4. if not exist "%FromFolder%" (
  5.     echo 没有找到文件夹 "%FromFolder%"
  6. )
  7. if not exist "%ToFolder%" (
  8.     echo 没有找到文件夹 "%ToFolder%"
  9. )
  10. cd /d "%FromFolder%"
  11. for /f "delims=" %%i in ('dir /b /s /ad "cc"') do (
  12.     set "OldFolder=%%i"
  13.     set "NewFolder=!OldFolder:%FromFolder%\=!"
  14.     if not exist "%ToFolder%\!NewFolder!" (
  15.         md "%ToFolder%\!NewFolder!"
  16.     )
  17.     xcopy /s /y "%%i" "%ToFolder%\!NewFolder!"
  18. )
复制代码
我把路径和需要拷贝的文件夹换了,现在可以拷贝了,不过结果不理想,我想要的是源文件夹的文件结构保留,也就是这样D:\111\2022年01月\(这里是每个项目名称文件夹)\cc
发表于 2022-2-7 13:09:55 | 显示全部楼层
  1. @echo off
  2. set "源文件夹=D:\工作量\2021年12月"
  3. set "目标文件夹=D:\111"
  4. for /f "delims=" %%a in ('dir /ad/b "%源文件夹%"') do (
  5.     xcopy "%源文件夹%\%%a\jpg" "%目标文件夹%\jpg" /s /y 2>nul
  6. )
  7. pause
复制代码
或者是
  1. @echo off
  2. set "源文件夹=D:\工作量\2021年12月"
  3. set "目标文件夹=D:\111"
  4. for /d %%a in ("%源文件夹%\*") do (
  5.     xcopy "%%a\jpg" "%目标文件夹%\jpg" /s /y 2>nul
  6. )
  7. pause
复制代码
发表于 2022-2-7 14:02:03 | 显示全部楼层
回复 7# mfkdf


    请举例说明结果不理想,例如:代码得到的结果跟你希望的结果有什么差异
 楼主| 发表于 2022-2-7 16:16:47 | 显示全部楼层
回复 8# flashercs


    可以复制,但保存结果不理想,源目录结构是D:\工作量\2021年12月,这个文件夹下面有n个项目的文件夹,在这n个项目文件夹里肯定会有一个叫jpg的文件夹,我就是要复制每个项目的jpg文件夹(包括里面的内容),但原有目录结构还保留,结果就是目标文件夹结构是D:\111\2021年12月\项目文件夹\jpg(项目文件夹会有n多个,每个里面只有jpg文件夹包括里面的内容)
 楼主| 发表于 2022-2-7 16:17:00 | 显示全部楼层
本帖最后由 mfkdf 于 2022-2-7 16:31 编辑
回复  mfkdf


    请举例说明结果不理想,例如:代码得到的结果跟你希望的结果有什么差异
Batcher 发表于 2022-2-7 14:02


不好意思之前弄错了,试了几次发现可以用了,还有个问题。我的每个项目里面有的有“原图”文件夹,有的没有,这个我也想复制过来(有的话就和jpg文件夹放同一目录下,没有就忽略,不需要任何提示),要怎么改?
发表于 2022-2-8 08:51:42 | 显示全部楼层
回复 11# mfkdf


4楼代码第12行改成这样:
for /f "delims=" %%i in ('dir /b /s /ad "jpg" "原图"') do (
 楼主| 发表于 2022-2-8 09:26:33 | 显示全部楼层
回复 12# Batcher

可以,好用,多谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 11:24 , Processed in 0.021278 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表