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

[文件操作] 【已解决】批处理AB文件夹俩相比较,多出则存放C文件夹

本帖最后由 zhengzhenhui 于 2024-4-28 18:27 编辑

目前这个代码,希望改进一下,显示是语法错误,未能复制文件。。
就是--A文件比B文件多出来则复制到C,
  1. @echo off
  2. rem 批处理保存为ansi编码格式
  3. set f1=A文件
  4. set f2=B文件
  5. set f3=A比B文件多的会存放到C文件
  6. for /f "tokens=1-2* delims= " %%a in ('robocopy "%f1%" "%f2%" /e /xc /xn /xo /l /x /fp ^|findstr /rb /c:" *新文件" /c:" *新目录"') do (
  7. echo 新文件\目录 [%%c]
  8. set file=%%c
  9. setlocal enabledelayedexpansion
  10. for /f "delims=" %%x in ("!file:%f1%=%f3%!") do (
  11. endlocal
  12. if exist "%%c\" (
  13. md "%%x" 2>nul
  14. ) else (
  15. md "%%~dpx" 2>nul
  16. copy "%%c" "%%x"
  17. )
  18. )
  19. )
  20. pause
复制代码
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

回复 8# 77七


   
还是提示文件名  目录卷标语法不正确,漏掉一些文件了

TOP

回复 10# 77七


    奇怪了,,,应该是我代码粘贴错了 ,晚上我用大文件跑一下代码看看

TOP

本帖最后由 zhengzhenhui 于 2024-4-28 17:15 编辑

回复 10# 77七


    已测试,我这边是30G的文件,AB比较后存入C文件夹,会出现运行结束后部分文件漏掉的情况
比如--A文件是30G   B文件拿空文件夹测试   C文件只有28G
(A文件是作为增量对比B,然后存入C的,这段代码B其实是不动的)

TOP

本帖最后由 zhengzhenhui 于 2024-4-28 18:35 编辑

回复 13# 77七


不好意思找到原因了,是特殊字符引起的识别错误导致的文件缺失,,我规范一下文件夹名字
文件夹为(2024-3月21日)就识别不到文件夹的

TOP

回复 15# terse


    A-B-C三个文件夹路径该如何填写进去。。

TOP

是这样吗
  1. for /f "tokens=1*" %%a in ('robocopy "%路径1%" "%路径2%" /e /xc /xn /xo /l /x /fp /NS /NJH /NJS ^| findstr /rb /c:"[ ]*新文件" /c:"[ ]*新目录"') do (
  2.      set file=%%b
  3.      setlocal enabledelayedexpansion
  4.      call set "file2=%%file:!路径1!=!路径3!%%"
  5.      for /f "tokens=*" %%f in ("!file2!") do (
  6.           endlocal
  7.           XCOPY "%%b" /Y /H /R "%%~dpf"
  8.     )
  9. )
复制代码
回复 17# terse

TOP

返回列表