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

[文件操作] 求助批处理将a文件夹内符合条件的文件复制到c文件夹,条件:清单内的文件名

有一个A文件夹,内有很多文件,比如csv和pdf文件。
有一个B.csv清单,内有时间,分类,文件名等内容。
希望将A文件夹内的文件符合条件的文件复制到C文件夹。
条件:清单内有的文件名。
谢谢各位大佬!!!

那说明没有复制文件。你可把代码第6行中最后的>nul去掉再运行代码,看看到底复制文件没有。

TOP

回复 22# qixiaobin0715


    解决了 谢谢您!

TOP

回复 22# qixiaobin0715


   您好   %n%没有输出结果   只输出了“共复制个文件”

TOP

回复 21# G70
  1. @echo off
  2. md C
  3. setlocal enabledelayedexpansion
  4. for /f "tokens=3 delims=," %%a in (b.csv) do (
  5.     if exist "A\%%a" (
  6.         copy "A\%%a" "C\">nul
  7.         set /a n+=1
  8.     )
  9. )
  10. echo,共复制%n%个文件
  11. echo,清单中没有列出的文件有:
  12. for %%i in (A\*) do if not exist "C\%%~nxi" echo,%%~nxi
  13. pause
复制代码

TOP

回复 15# qixiaobin0715


    请问,如果要输出复制文件的个数应该怎么处理?

TOP

回复 19# qixiaobin0715


    好的,谢谢!!

TOP

回复 18# G70
批处理只能处理文本文件。只能求助其它程序了。

TOP

本帖最后由 G70 于 2021-7-15 16:05 编辑

回复 15# qixiaobin0715


    您好,如果把b文件改成xlsx文件的话,这个代码应该怎么修改呢

TOP

回复 15# qixiaobin0715


    可以了!!谢谢您!!

TOP

回复 14# idwma


    您好,请问输出一句话之后要怎么自动换行呢

TOP

本帖最后由 qixiaobin0715 于 2021-7-7 06:53 编辑

回复 13# G70
  1. @echo off
  2. md C
  3. for /f "tokens=3 delims=," %%a in (b.csv) do if exist "A\%%a" copy "A\%%a" "C\">nul
  4. echo,清单中没有列出的文件有:
  5. for %%i in (A\*) do if not exist "C\%%~nxi" echo,%%~nxi
  6. pause
复制代码

TOP

本帖最后由 idwma 于 2021-7-6 19:15 编辑

@echo off&setlocal enabledelayedexpansion
set a=d:\a\
set b=d:\b.csv
set c=d:\c\
for /f "delims=" %%i in ('dir/b/s !a!') do (
find /i "%%~nxi" %b% >nul && copy "%%i" "!c!" >nul || set /p=""没有找到文件%%i"," <nul
)
pause

TOP

回复 12# qixiaobin0715


    您好,可能是我的需求没有讲明白。比如,A文件夹里有1.pdf,2.word,3.txt,4.csv,但是b的清单里只有1.pdf和4.csv的数据,希望C文件夹里复制1.pdf和4.csv两个文件,窗口显示“没有找到文件2.word”,“没有找到文件3.txt”。谢谢您!!

TOP

回复 11# G70
我这里测试没问题,代码修改了一下,将复制信息屏蔽掉。窗口不显示不存在文件吗?

TOP

返回列表