Board logo

标题: [文件操作] 全盘搜索指定文件夹并复制批处理如何写? [打印本页]

作者: subtlelonging    时间: 2017-7-26 19:10     标题: 全盘搜索指定文件夹并复制批处理如何写?

例如我的U盘有一个ABC文件夹,里面有我需要的文件,
在dos下,我加载NTFS驱动之后,就能读到U盘所有文件,
不同的电脑分区不同,所以我的U盘分配的盘符也不相同,
我现在需要用一个批处理搜索a b c d e f g h i j k l m n o p q r s t u v w x y z任何分区下ABC文件夹,
找到之后复制ABC文件夹下的所有文件到A盘根目录(不需要考虑后缀名),批处理如何写?
另外考虑到速度问题,不需要深入遍历所有子文件夹,我需要的ABC文件夹基本都会在分区根目录,只需要搜索所有分区根目录即可
作者: Batcher    时间: 2017-7-27 22:42

  1. @echo off
  2. for %%i 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 (
  3.     if exist "%%i:\ABC" (
  4.         echo "%%i:\ABC"
  5.     )
  6. )
复制代码
试试这样能否成功执行?
我手上暂时没有MSDOS环境,不方便测试。
作者: subtlelonging    时间: 2017-7-28 01:23

回复 2# Batcher

管理员你好,测试可以使用,但是我在打印后边加了一句复制命令,为什么一直提示找不到指定文件,copy "%%i:\ABC" C:\
作者: Batcher    时间: 2017-7-28 11:27

回复 3# subtlelonging


执行这个代码把详细信息发出来看看
  1. for %%i 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 (
  2.     if exist "%%i:\ABC" (
  3.         echo "%%i:\ABC"
  4.         copy "%%i:\ABC" C:\
  5.     )
  6. )
复制代码
另外,单独执行那个报错的copy命令能成功吗?我在CMD里面试了一下没问题:
C:\>copy C:\Test\ABC  C:\
C:\Test\ABC\T.zip
        1 file(s) copied.
作者: subtlelonging    时间: 2017-7-28 12:26

回复 4# Batcher


C:\Windows\system32>copy F:\ABC C:\
F:\ABC\*
系统找不到指定的文件。
已复制         0 个文件。

WINDOWS10 直接执行居然也错误,明明有这个文件F:\ABC
作者: 老刘1号    时间: 2017-7-28 13:15

本帖最后由 老刘1号 于 2017-7-28 13:18 编辑

XCOPY /H %%i:\ABC %SystemDrive%\
作者: Batcher    时间: 2017-7-28 13:48

回复 5# subtlelonging


    你的 F:\ABC 文件夹下面没有文件吧?这种情况会导致 copy 命令报错。
作者: subtlelonging    时间: 2017-7-28 14:28

回复 7# Batcher


    是的,确实因为我没放文件在下面,还有发现必须以管理员身份运行CMD,不然老是提示拒绝访问!




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