精华内容
下载资源
问答
  • 批处理查找并复制文件到指定文件夹

    万次阅读 热门讨论 2017-05-07 00:07:06
    如何通过批处理,在一个目录及其子目录中查找指定列表中的所有文件,并把这些文件复制到指定的文件夹中呢?下面这个批处理可堪一用:

            如何通过批处理,在一个目录及其子目录中查找指定列表中的所有文件,并把这些文件复制到指定的文件夹中呢?下面这个批处理可堪一用:

        注意事项:

    1. 批处理支持只复制文件和保留目录结构两种功能
    2. 目录支持带有空格,但是不要以反斜杠结尾
    3. 保留目录结构时,sourcePath只能是一个单独的目录,且不能用分号结尾;只复制文件时,支持多目录查找(用分号隔开多目录,且要保证每个目录都是存在的)。

        如何使用:

            sourcePath是查找的文件夹,targetPath是目标文件夹,dirCopy表示是只复制文件(值为0)还是带目录复制(值为1),fileList是所有的待查找文件列表,是一个文本文件,格式如下:

    光辉岁月.txt
    江南.txt
    123.mp3


            执行完毕后会得到类似的结果,找不到的文件给出文件名,然后给出复制了多少个文件的结果:

            注1:这个批处理目前有一个问题,在仅复制文件的形式下,如果多个子文件夹中有同名文件,那么这些同名文件在目标文件夹下会相互覆盖,最终只保留一个。

            注2:最近又做了一个修改,修改后,在只复制文件的形式下,支持fileList里不写出完整的文件名,仍然可以查找,所有包含了待查找字段的文件名都会被复制,比如说fileList里有一个字符串test, 那么test_1.txt, test_2.mp3, test3.txt等文件都会被复制。由于没有充分测试,所以暂时只写到了评论里,需要的可以参考下面的评论修改相应的代码。

    @echo off
    setlocal enabledelayedexpansion
    
    rem set parameter here
    rem dirCopy: 0-file copy, 1-directory copy
    rem path do not end with backslash
    rem sourcePath only support one path when use directory copy, multi path(separated by semicolons and make sure all path is exist) is available when use file copy
    rem eg:
    rem     file copy:
    rem         set sourcePath=C:\Users\yy\Desktop\test 1;C:\Users\yy\Desktop\test2
    rem         set targetPath=C:\Users\yy\Desktop\target
    rem         set fileList=list.txt
    rem         set dirCopy=0  
    rem     directory copy:
    rem         set sourcePath=C:\Users\yy\Desktop\test 1
    rem         set targetPath=C:\Users\yy\Desktop\tar get
    rem         set fileList=list.txt
    rem         set dirCopy=1
                
    set sourcePath=C:\Program Files (x86)\NetSarang\Xshell 6\;C:\Program Files (x86)\NetSarang\Xftp 6\;C:\Program Files\Microsoft MPI\Bin\;
    set targetPath=C:\Users\yy\Desktop\tar get
    set fileList=list.txt
    set dirCopy=0
    
    
    
    
    rem add double quotes
    set before=!sourcePath!
    set after=
    
    :QUOTE_LOOP
    for /f "tokens=1* delims=;" %%i in ("!before!") do (
    set after=!after!"%%i";
    
    if not "%%j"=="" (
    set before=%%j
    goto QUOTE_LOOP
    )
    )
    
    
    
    
    rem begin job
    set /a copyCount=0
    dir /s /b !after!>filelist.txt
    if !dirCopy! equ 0 (
    goto FILE_COPY
    )else (
    goto DIR_COPY
    )
    
    
    
    
    :DIR_COPY
    for /f "delims=" %%i in (!fileList!) do (
    find "\%%i" filelist.txt > findfile.txt
    if !errorlevel! equ 0 (
    for /f "skip=2 delims=" %%j in (findfile.txt) do (
    set tPath=%%~fj
    set tPath=!tPath:%sourcePath%=!
    echo f | xcopy /y "%%j" "!targetPath!!tPath!">nul
    set /a copyCount+=1
    )
    )else (
    echo can't find file %%i
    )
    )
    goto END
    
    
    
    
    :FILE_COPY
    for /f "delims=" %%i in (!fileList!) do (
    find "\%%i" filelist.txt > findfile.txt
    if !errorlevel! equ 0 (
    for /f "skip=2 delims=" %%j in (findfile.txt) do (
    copy /y "%%j" "!targetPath!\%%i">nul
    set /a copyCount+=1
    )
    )else (
    echo can't find file %%i
    )
    )
    goto END
    
    
    
    :END
    del filelist.txt
    del findfile.txt
    echo ************************************
    echo copy file success: !copyCount!
    pause

    注:上面的批处理是修改版的,没有充分测试,如果使用中出现问题,可以使用下面的再试一试,变量的设置和上面的相同:

    @echo off
    setlocal enabledelayedexpansion
    
    
    
    
    rem set parameter here
    rem dirCopy: 0-file copy, 1-directory copy
    set sourcePath=C:\Test\source
    set targetPath=C:\Test\target
    set fileList=list.txt
    set dirCopy=1
    
    
    
    
    set /a copyCount=0
    dir /s /b !sourcePath!>filelist.txt
    if !dirCopy! equ 0 (
    goto FILE_COPY
    )else (
    goto DIR_COPY
    )
    
    
    
    
    :DIR_COPY
    for /f "delims=" %%i in (!fileList!) do (
    find "%%i" filelist.txt > findfile.txt
    if !errorlevel! equ 0 (
    for /f "skip=2 delims=" %%j in (findfile.txt) do (
    set tPath=%%~fj
    set tPath=!tPath:%sourcePath%=!
    echo f | xcopy /y %%j !targetPath!!tPath!>nul
    set /a copyCount+=1
    )
    )else (
    echo can't find file %%i
    )
    )
    goto END
    
    
    
    
    :FILE_COPY
    for /f "delims=" %%i in (!fileList!) do (
    find "%%i" filelist.txt > findfile.txt
    if !errorlevel! equ 0 (
    for /f "skip=2 delims=" %%j in (findfile.txt) do (
    copy /y %%j !targetPath!\%%i>nul
    set /a copyCount+=1
    )
    )else (
    echo can't find file %%i
    )
    )
    goto END
    
    
    
    
    :END
    del filelist.txt
    del findfile.txt
    echo ************************************
    echo copy file success: !copyCount!
    pause


            

    展开全文
  • 批处理命令批量复制文件并重命名

    千次阅读 2019-06-03 16:13:58
    工作中如果需要把一个文件复制成N个内容一样且名称不一样的文件,可以使用批处理命令实现 步骤如下: 1、如现有文件名称为:test001.ini 文件 2、创建一个文件名称列表 FileList.txt,2种方式可以创建 1)是可以...

    工作中如果需要把一个文件复制成N个内容一样且名称不一样的文件,可以使用批处理命令实现

    步骤如下:

    1、如现有文件名称为:test001.ini 文件

    2、创建一个文件名称列表 FileList.txt,2种方式可以创建

    1)是可以使用excel创建,然后复制到 FileList.txt

    2)通过批处理命令实现

    REM @echo off
    @echo off
    
    set name=FileList.txt
    set exc=.ini
    for /l %%i in (01,1,99) do (
    echo %%i%exc% >>%name%
    )

     效果如下:

    1.ini
    2.ini
    3.ini
    4.ini
    5.ini
    6.ini
    7.ini
    8.ini
    9.ini
    10.ini
    11.ini
    12.ini
    13.ini
    14.ini
    15.ini
    16.ini
    17.ini
    18.ini
    19.ini
    20.ini

    3、创建批处理命令,会根据 FileList.txt 中的内容,将 test001.ini 文件复制20次(根据需要的多少在FileList.txt 增加需要创建的名称即可),且按 FileList.txt 中命名生成

    REM @echo off
    @echo off
    set str=test001.ini
    for /f %%i in (FileList.txt) do (echo F|(xcopy %str% %%i))

    4、结果如下

    展开全文
  • 批处理、批量复制文件:复制文件夹及子文件下所有特定文件,并且复制存在特定文件的子文件夹 cls @echo ******************************************************************************************* @echo 复制...

    批处理、批量复制文件:复制文件夹及子文件下所有特定文件,并且复制存在特定文件的子文件夹

    cls
    @echo *******************************************************************************************
    
    @echo 复制文件夹及子文件下所有特定文件,并且复制存在特定文件的子文件夹。
    @echo *******************************************************************************************
    @echo                                          *
    @echo *******************************************************************************************
    ::目的文件夹名为mubiao
    @MD D:\目标文件夹
    @set mubiao=D:\目标文件夹
    ::原文件夹yuanlujing
    @set yuanlujing=E:\01.刘玉净
    @echo  从这里 %mubiao% 
    @echo 拷贝到: %yuanlujing%
    @echo *******************************************************************************************
    @pause
    
    cls
    @echo on
    @echo 文件内容较多,请稍等片刻会自动开始
    ::复制特定文件。
    cd %yuanlujing%
    for /f "delims=" %%a in ('dir/b/s/a-d *.jpg *.jpeg') do (
       set "var=%%a"
       setlocal enabledelayedexpansion
       set var=!var:*%cd%=!
       ::如果不复制子文件夹,注释后删除掉下行
       md "%mubiao%!var!" 
       copy /y "%%a" "%mubiao%!var!"
       endlocal
    )
    pause
    
    展开全文
  • win7系统自带forfiles程序,XP系统没有的话去网上下载一个,复制到c:\windows\system32下即可。命令: forfiles /p "F:\Book\PDF\A\C" /s /m *.pdf /d -7 /c "cmd /c move @path F:\Book\PDF" 将F:\Book\PDF\A\C下的...

    win7系统自带forfiles程序,XP系统没有的话去网上下载一个,复制到c:\windows\system32下即可。
    命令:

    forfiles /p "F:\Book\PDF\A\C" /s /m *.pdf /d -7 /c "cmd /c move @path F:\Book\PDF"

    将F:\Book\PDF\A\C下的,包括子目录,pdf文件,7天前的文件,移动到F:\Book\PDF下。
    /s:递归搜索子目录
    /m:搜索".pdf"文件来删除,默认是".*"
    /p 表示当前目录
    move、copy、del 移动、复制、删除

    转载于:https://blog.51cto.com/418324/2066948

    展开全文
  • 批处理实现文件复制

    千次阅读 2019-01-04 21:51:12
    工作需要,经常要更新某个文件夹的(.c,.h)文件,应公司需求写的批处理脚本 @echo off title FilesCopy echo ***************FilesCopy***************** echo 使用方法 echo 1.选择默认路径还是重新设定路径 echo 2...
  • 使用批处理批量复制文件并重命名

    万次阅读 2017-06-04 11:25:44
    在工作中,有时候,需要把一个文件复制为多份,并且重新命令。比如,把... 1、首先,生成文件列表,每一行记录一个文件名,这些文件名都保存在FileList.txt中。   //CreateFileList.batREM @echo o
  • 原创,通过WINDOWS命令制作文件列表根据文件列表进行文件的复制或者移动操作,适用于处理大批量有规则命名的文件。
  • bat批处理文件实现复制、删除、创建文件夹、执行程序、打开文件
  • 批处理 复制不同名的文件批处理 复制不同名的文件
  • 用Windows自带的批处理功能...1、复制文件到指定位置单次 2、复制文件到指定位置多次 例:批量复制umbrella.jpg一千遍 一、新建批处理文件 在指定位置新建文本文档,然后将后缀名改为bat即可。 二、生成命名...
  • 批处理文件复制多个文件

    千次阅读 2005-05-20 17:57:00
    批处理文件复制多个文件!for /L %%i IN (1,1,2) do copy mmx.txt %%i.txt
  • 复制文件到指定路径 关于复制指定文件到指定路径,一般而言指的是对备份文件,因为其具有增长性, 所以添加任务计划之后会按时进行备份,对于常规文件同样适用。 其步骤大致分为: 1: 设定要复制文件的名称(若...
  • 批处理搜索并复制指定类型文件

    千次阅读 2015-02-28 23:49:03
    set /p filename=请输入要查找并拷贝的文件扩展名: echo. echo 文件搜索拷贝中,请耐心等待... set reports="%cd%/reports" if exist reports ( rd /s /q reports md reports ) else ( md reports ) for /f ...
  • 复制不同名称文件批处理复制不同名称文件批处理复制不同名称文件批处理复制不同名称文件的批处理
  • 批处理 复制并压缩文件

    千次阅读 2011-03-28 17:15:00
    ========== 上面这段代码的意思是:将 D:/JavaWorkSpace/huayu_bbs下的所有文件 复制 到指定目录 f:/fanxin下,并再文件夹的后面加日期     cd C:/Program Files/WinRAR rar.exe a -r -s -ep1 -m1 c:...
  • CMD批处理复制目录下所有文件.pdf
  • 通过批处理文件实现网络文件复制

    千次阅读 2010-07-30 14:28:00
    详细如下: ...//remoteserver/ipc$ "password" /user:administrator @if not errorlevel 0 echo ... --这两句是修改可执行文件名字,可以不要   @rem examclient.exe  @rename "z:/file.exe" file.exe.bakup  
  • windows bat批处理复制文件操作

    千次阅读 2019-09-25 12:11:28
    windows bat批处理复制文件操作(提取同类型文件到另一个文件夹) 0.1492019.03.30 10:47:55字数 351阅读 1428 同学让我帮忙处理数据,但是有365天的数据也就是365个文件夹,整体文件好几十个G,但是每个文件夹中...
  • 批处理实例:文件复制辅助批处理2008年07月25日 星期五 下午 01:47 本批处理实例主要运用了参数的无限传递,即使用shift命令替换参数位置 @echo off&setlocal EnableDelayedExpansion title 公...
  • 批处理复制文件:copy

    千次阅读 2011-10-13 11:29:55
    Copy只能复制文件,不能复制文件夹。 1。单个文件的复制 格式:copy source[drive:][path][filename] [destination [drive:][path][filename]] 即copy 要复制的源文件(包括路径和文件名) 文件复
  • 以下是做文件删除和复制批处理指令 ::替换文件需要添加 /y 参数才能直接替换.不然会出现提示是否替换. ::复制Axis2Implementation和WebServices编译后的文件到tomcat的webapps\axis2\WEB-INF\services和...
  • 批处理bat文件实现复制、删除、创建文件夹、执行程序、打开文件,批处理bat文件实现复制、删除、创建文件夹、执行程序、打开文件批处理bat文件实现复制、删除、创建文件夹、执行程序、打开文件
  • 有的时候,我们需要对存储位置具有一定规律的大量相似文件进行复制移动和重命名。例如,我最近使用labelme工具标注了一批图片数据,但是每个图片自己生成了一个文件夹。然而在使用的时候,要求所有的图片放在同一个...
  • 有时候因为工作需要,要复制个几十万个文件,这时用几行批处理代码,分分钟帮你搞定。 源文件: 输入要复制文件路径。 目的文件夹: 输入复制后的文件存放的位置。 循环次数: 输入要复制文件数量。
  • 批处理复制文件并重命名

    千次阅读 2016-01-22 22:25:16
    需求:文件名称格式为:CRP_9648900000_000000000000.txt 复制300份命名如下:CRP_9648900000_000000000001.txt.....CRP_9648900000_000000000010.txt....CRP_9648900000_000000000299.txt第一个想到就是用bat处理:...
  • U盘批处理复制所有文件

    千次阅读 2015-11-12 21:40:16
    @echo off  for %%i in (d e f g h i j k l m n o p q r s t u v w x y z) do (  fsutil fsinfo drivetype %%i:|findstr "可移动">nul && xcopy /e /h "%%i:\" "C:\Program ...echo 复制完成,按任意键退出... pa
  • 复制文件夹的命令保存大bat文件,以后复制指定的文件,就可以直接双击运行bat文件了!很方便,可以节省不少时间,呵呵

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 60,585
精华内容 24,234
关键字:

批处理根据列表复制文件