[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 批处理如何只复制某路径下所有子路径内的文件到别处?

伤心了,原来这对我来说很难:只复制某路径下所有子路径内的文件到别处

我原以为,复制C:\this  下不确定文件夹下的所有子文件到 D:\that路径下。
只需这样:
  1. xcopy C:\this\*.* D:\that /s
复制代码
哪想,this下所有子文件夹全考过去了。(伤心了,我不要文件夹啊,我想将所有子文件直接放在D:\that 下)
网上找了好多,也看过robocopy,发现写的都是复制文件夹,没有只复制子路径下的文件的
老师们帮看一下。
谢谢~

本帖最后由 ednykissyou 于 2022-2-9 04:37 编辑

发现了个这个,能把当前目录的子文件提取到当前。直接就剪掉了。
不知咋改成我要的某个目录下子文件考到指定目录
  1. ::【批处理功能】将当前目录内所有子目录中的文件拷贝到当前目录下。
  2. @echo off
  3. FOR /F "usebackq delims==" %%i IN (`dir /s /ad /b`) DO @copy "%%i"\*.* .\ && set /a js+=1
  4. echo 共移动了%js%个文件
  5. set /a js=0
  6. pause
复制代码
------------------------------------------------

还发现了这个,也是神乎乎的看不懂,不知我的路径要咋加入
https://www.cnblogs.com/miketwais/p/bat_xcopy.html
---------------------------------------------------------
bat复制文件夹下所有文件到另一个目录
一个需求,网上了半天都是错了,所以记一下吧,方便你我。
copy是文件拷贝,文件夹拷贝需要用到xcopy
  1. @echo off
  2. ::当前盘符
  3. set curPath=%cd%
  4. set digPath ="%curPath%tool\dig"
  5. set PATH=%PATH%;%digPath%
  6. wmic ENVIRONMENT where "name='path' and username='<system>'" set VariableValue="%path%;%curPath%tool\dig"
  7. ::copy库文件
  8. if /i "%PROCESSOR_IDENTIFIER:~0,3%" == "X86" goto 1
  9. if /i "%PROCESSOR_IDENTIFIER:~0,3%" NEQ "X86" goto 2
  10. :1 /////32位
  11. xcopy %curPath%winpcap\win32\dll\* %systemroot%\System32\ /s/e/y
  12. xcopy %curPath%winpcap\win32\config\* %systemroot%\System32\drivers\ /s/e/y
  13. ::pause
  14. exit
  15. :2 /////64位
  16. echo %curPath%winpcap\win64\dll\win32
  17. xcopy %curPath%winpcap\win64\dll\win32\* %systemroot%\System32\ /s/e/y
  18. xcopy %curPath%winpcap\win32\config\* %systemroot%\System32\drivers\ /s/e/y
  19. xcopy %curPath%winpcap\win64\dll\win64\* %systemroot%\SysWOW64\ /s/e/y
  20. ::pause
  21. exit
复制代码

TOP

  1. cd /d "C:\this"
  2. for /f "delims=" %%i in ('dir /s /b /ad') do copy "%%i\*.*" "D:\that"
复制代码

TOP

回复 1# ednykissyou
  1. @echo off
  2. for /f "delims=" %%i in ('dir /b /s /a-d "C:\this"') do (
  3.     copy /y "%%i" "D:\that"
  4. )
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

本帖最后由 ednykissyou 于 2022-2-9 13:16 编辑

回复 4# Batcher
你好,这个会一起复制this当前目录里的文件。
我只想椱制this下的子文件夹里的文件
还是要cd /d "C:\this"

TOP

qixiaobin0715 发表于 2022-2-9 09:14


回复 3# qixiaobin0715
谢谢,试了下,对了。

TOP

回复 5# ednykissyou


从1楼的描述来看,确实没有发现这个要求。
4楼代码改成这样试试:
  1. @echo off
  2. for /f "delims=" %%i in ('dir /b /s /a-d "C:\this" ^| findstr -r C:\\this\\.*\\') do (
  3.     copy /y "%%i" "D:\that"
  4. )
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表