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

[文本处理] 批处理命令xcopy批量复制部分文件不成功

请教一下各位老大,我做了一个指定复制的批处理命令
通过XCOPY时会有部分文件复制不成功提示【找不到文件 -*****】
如何把这部分不成功的记录保存成TXT或者EXCEL文件呢?
或者保留所有复制过程也行
  1. Xcopy 订单\张三报告.pdf 订单\ /Q
  2. Xcopy 订单\李四报告.pdf 订单\ /Q
  3. Xcopy 订单\刘三报告.pdf 订单\ /Q
复制代码

回复 1# huangkun2008


找不到文件是因为文件真的不存在?还是命令里面写错了路径?
那些报错的文件有什么特征吗?比如隐藏属性、系统属性、快捷方式等
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

没看明白你的代码,请直接描述下需要如何复制
bat小白,请多指教!谢谢!

TOP

其实作用是每次需要复制大量的文档出来打印,但是不是所有需要打印,只需要我指定的这些,但是有部分文档系统可能未生成,所以我通过EXCEL表+批处理把需要的打印的这部分文档放到另一个文件夹批量打印
所以这里目前就碰到一个问题,批处理复制的时候需要生成一个记录比如哪些未复制成功的,以方便核对是否名称有误

TOP

回复 4# huangkun2008


假设当前目录下存在文件夹:
订单
打印

假设当前目录下存在文件:
test.bat
列表.txt

列表.txt 里面是需要打印的文件名,每行一个,例如:
张三报告.pdf
李四报告.pdf
刘三报告.pdf

test.bat 里面是以下代码:
  1. @echo off
  2. cd /d "%~dp0"
  3. REM 存放大量文档的文件夹
  4. set "OldFolder=订单"
  5. REM 需要打印的文件复制到哪个文件夹
  6. set "NewFolder=打印"
  7. REM 需要复制的文件名列表
  8. set "InFile=列表.txt"
  9. REM 记录哪些未复制成功的
  10. set "OutFile=结果.txt"
  11. >"%OutFile%" type nul
  12. for /f "delims=" %%i in ('type "%InFile%"') do (
  13.     if exist "%OldFolder%\%%i" (
  14.         xcopy /q /y "%OldFolder%\%%i" "%NewFolder%"
  15.     ) else (
  16.         >>"%OutFile%" echo,%%i
  17.     )
  18. )
复制代码
请参考Q-04和Q-05把bat文件和txt文件都保存为ANSI编码:
https://mp.weixin.qq.com/s/Koje4FufWxWBs7ioDy_LJA
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表