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

[文件操作] [已解决]批处理怎么批量复制指定后缀名文件到指定目录?

[复制链接]
发表于 2015-1-16 17:10:34 | 显示全部楼层 |阅读模式
情况是这样的,D盘“1”文件夹里面有很多文件夹,每个文件夹里面都有我想要的文件,
怎么把它们全部移动到E盘“1”文件夹里面,文件格式是tm6

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2015-1-16 17:47:00 | 显示全部楼层

  1. @echo off
  2. for /r d:\1\ %%i in (*tm6) do (
  3.     copy /y "%%~fsi" "e:\1"
  4. )
  5. pause
复制代码
我记得自己在搜集图片的时候用过,很方便的,你试下。
发表于 2015-1-16 19:58:33 | 显示全部楼层
回复 2# 慕夜蓝化


    楼主似乎要求复制的同时,顺便还想改下名吧
发表于 2015-1-17 08:56:38 | 显示全部楼层
本帖最后由 慕夜蓝化 于 2015-1-17 09:00 编辑

回复 3# apang
嗯,又看了一下,改了一下,这样应该可以了。|

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /r d:\1\ %%i in (*tm6) do (
  4.     copy /y "%%~fsi" "e:\1" >nul 2>nul
  5. )
  6. for /r e:\1\ %%a in (*tm6) do (
  7.     set/a n+=1
  8.     ren "%%~fsa" q(!n!^)%%~xa
  9. )
  10. pause
复制代码
发表于 2015-1-17 20:48:58 | 显示全部楼层
回复 4# 慕夜蓝化


    可以。
copy 复制文件的时候就可以改名,减少一个 for 循环,像这样:
  1. for /r d:\1\ %%i in (*tm6) do (
  2.       set /a n+=1
  3.     copy /y "%%~fsi" "e:\1\q(!n!)%%~xa" >nul 2>nul

  4. )
复制代码
发表于 2015-1-17 21:27:15 | 显示全部楼层
回复 5# apang


    嗯嗯,记下了!copy在复制的时候也可以改名的。
 楼主| 发表于 2015-2-28 18:50:22 | 显示全部楼层
我记得自己在搜集图片的时候用过,很方便的,你试下。
慕夜蓝化 发表于 2015-1-16 17:47



   不能用
 楼主| 发表于 2015-2-28 18:53:19 | 显示全部楼层
回复 4# 慕夜蓝化


    这个也不行。运行此批处理后,E盘1文件夹下只有1个文件,而已还打不开。
 楼主| 发表于 2015-2-28 18:57:16 | 显示全部楼层
回复  慕夜蓝化


    可以。
copy 复制文件的时候就可以改名,减少一个 for 循环,像这样:
apang 发表于 2015-1-17 20:48



   这个也不行
发表于 2015-2-28 19:18:21 | 显示全部楼层
本帖最后由 pcl_test 于 2015-2-28 19:25 编辑

回复 1# qq544935474
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set n=1
  4. for /r "d:\1" %%i in (*.tm6) do (
  5. if exist "%%i" (
  6. echo "%%i"
  7. copy /y "%%i" "e:\1\q(!n!)%%~xi"
  8. set /a n+=1
  9. )
  10. )
  11. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
qq544935474 + 1 对,就是这样的

查看全部评分

 楼主| 发表于 2015-2-28 21:37:06 | 显示全部楼层
回复 10# pcl_test


   还要一个,剪切,不改名,如遇同名,自动加上(1)、(2)、

比QQ如同名了,自动QQ(1)
                             QQ(2)
                              ......
发表于 2015-2-28 22:51:22 | 显示全部楼层
本帖最后由 pcl_test 于 2015-3-1 09:18 编辑

回复 11# qq544935474
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set n=1
  4. for /r "d:\1" %%i in (*.tm6) do (
  5. if exist "%%i" if not exist "e:\1\%%~nxi" (
  6. move "%%i" "e:\1"
  7. )
  8. if exist "%%i" if exist "e:\1\%%~nxi" (
  9. call :aa %%i
  10. )
  11. )
  12. pause & exit
  13. :aa
  14. for /l %%a in (1 1 1000) do (
  15. if not exist "e:\1\%%~ni(%%a)%%~xi" (
  16. move "%%i" "e:\1\%%~ni(%%a)%%~xi"
  17. goto :eof
  18. )
  19. )
复制代码

评分

参与人数 1技术 +1 收起 理由
qq544935474 + 1 好。。就是这样

查看全部评分

发表于 2015-2-28 22:58:58 | 显示全部楼层
回复 9# qq544935474


    不行是肯定的,我说了是“像这样”,你懂得
发表于 2015-3-2 11:51:44 | 显示全部楼层
回复 11# qq544935474

问题得到解决请在标题最前面注明[已解决]
http://www.bathome.net/thread-3473-1-1.html
发表于 2015-6-18 23:39:19 | 显示全部楼层
学习了...........................
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 22:44 , Processed in 0.022789 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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