找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 22999|回复: 2

[文件操作] 用批处理实现拷贝大于30天的文件,找大神帮忙

[复制链接]
发表于 2018-1-30 10:20:34 | 显示全部楼层 |阅读模式
本帖最后由 zh_y 于 2018-1-30 10:23 编辑

我想用批处理实现拷贝大于30的文件,并且按照原有的文件目录拷贝。

forfiles /p "D:\123" /s  /m *.* /d -30 /c "cmd /c dir @path /b/s">"E:\outfile.txt"用这个 可以实现 查找到D盘123里大于30天的文件,并且把路径输出到outfile.txt
forfiles /p "D:\123" /s /m *.* /d -30 /c "cmd /c  xcopy @path "E:\132" /d /e /r /k /y /i /c" 用这个 可以实现查找到D盘123里大于30天的文件,然后拷贝到E盘132里,但是拷贝过来后不是按照D 123的层级目录。
请教大神,如何实现 把大于30天的文件,按照原有的层级目录实现拷贝
发表于 2018-1-30 13:25:57 | 显示全部楼层
  1. @echo off
  2. set "SourDir=D:\123"
  3. set "DestDir=E:\132"
  4. set "OutFile=E:\outfile.txt"

  5. forfiles /p "%SourDir%" /s  /m *.* /d 0 /c "cmd /c echo @path">"%OutFile%"
  6. for /f "usebackq delims=" %%a in ("%OutFile%") do (
  7.         setlocal enableDelayedExpansion
  8.         set "FilePath=%%~dpa"&&set "FilePath=!FilePath:%SourDir%=!"&&set "FilePath=!FilePath:~1,-1!"
  9.         robocopy "%SourDir%\!FilePath!" "%DestDir%\!FilePath!" "%%~nxa"
  10.         endlocal
  11. )       
  12. pause&exit
复制代码
发表于 2018-1-30 17:36:21 | 显示全部楼层
不一定要用forfiles,建议用robocopy...
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 03:20 , Processed in 0.017354 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表