Board logo

标题: [文件操作] 求助批处理把部分文件夹拷贝到一个文件夹下 [打印本页]

作者: yy5958437    时间: 2023-6-20 17:10     标题: 求助批处理把部分文件夹拷贝到一个文件夹下

本帖最后由 yy5958437 于 2023-9-16 10:06 编辑

目前G盘A文件夹里有上百个文件,我需要找到 其中20多个文件夹(有文件夹名称),然后复制到B文件夹里面。   上面这个功能已经实现了,代码如下:   @echo off
for /f "delims=" %%i in (.\B.txt) do ( xcopy "%%i" "G:\620%%i\" /E /Y)            。但是现在遇到问题,因为G盘里面我有很多个文件,ABCDE。。。 然后ABCD里面也有abcd文件夹。有些要找的文件夹,我也不确定到底在那个文件夹里面。有没有办法检索整个盘,搜索到,然后复制出来呢。 求个大佬指点

已解决,谢谢各位大佬
作者: jyswjjgdwtdtj    时间: 2023-6-20 17:55

  1. 'vbs
  2. b="文件夹b"
  3. a="保存了文件夹名的文本文件"
  4. set fso=createobject("scripting.filesystemobject")
  5. set shell=createobject("shell.application")
  6. set f=fso.opentextfile(a,1,false,-2)
  7. set d=shell.namespace(b)
  8. do
  9. c=f.readline
  10. d.copyhere(c)
  11. loop
复制代码

作者: 77七    时间: 2023-6-21 00:33

本帖最后由 77七 于 2023-6-21 01:28 编辑
  1. @echo off
  2. for /f "usebackq delims=" %%a in ("1.txt") do (
  3. robocopy "A\%%a" "B\%%a" /e
  4. )
  5. pause
复制代码

把文件夹名每行一个保存在1.txt中
作者: yy5958437    时间: 2023-7-11 14:09

本帖最后由 yy5958437 于 2023-7-11 14:14 编辑

回复 3# 77七


    大佬如果我要复制的源头是G盘,而不是G/A文件夹,要怎么弄呢 ,就是我要找的文件夹,可能在G盘A文件夹里面有几个,也可能在C文件夹里面有几个
作者: Batcher    时间: 2023-7-11 17:03

回复 1# yy5958437


搜索单个文件夹名称

test-1-1.bat
  1. @echo off
  2. REM 备份到哪个目录下面
  3. set "ToFolder=C:\Test"
  4. REM 指定待搜索的文件夹名称
  5. set "FolderName=BatHome"
  6. for %%a in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
  7.     if exist %%a:\ (
  8.     echo 正在搜索%%a:\
  9.         for /f "delims=" %%b in ('dir /b /s /ad "%%a:\*%FolderName%" 2^>nul ^| findstr /v /i /b "%ToFolder%"') do (
  10.             if /i "%%~nxb" equ "%FolderName%" (
  11.                 xcopy /e "%%b" "%ToFolder%%%~pnxb\"
  12.             )
  13.         )
  14.     )
  15. )
复制代码

作者: Batcher    时间: 2023-7-11 17:33

回复 1# yy5958437


搜索多个文件夹名称

test-2-1.bat
  1. @echo off
  2. REM 待查找的文件夹名称放在1.txt里面
  3. set "FolderList=1.txt"
  4. REM 备份到哪个目录下面
  5. set "ToFolder=C:\Test"
  6. cd /d "%~dp0"
  7. for /f "delims=" %%i in ('type "1.txt"') do (
  8.     call :ExecSearch "%%~nxi"
  9. )
  10. goto :eof
  11. :ExecSearch
  12. for %%a in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
  13.     if exist %%a:\ (
  14.     echo 正在搜索%%a:\下面的文件夹%~1
  15.         for /f "delims=" %%b in ('dir /b /s /ad "%%a:\*%~1" 2^>nul ^| findstr /v /i /b "%ToFolder%"') do (
  16.             if /i "%%~nxb" equ "%~1" (
  17.                 xcopy /e "%%b" "%ToFolder%%%~pnxb\"
  18.             )
  19.         )
  20.     )
  21. )
复制代码

作者: yy5958437    时间: 2023-9-16 10:06

回复 1# yy5958437


已经解决,谢谢各位大佬




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