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

[文件操作] 求助批处理robocopy镜像30天内的文件和文件夹

[复制链接]
 楼主| 发表于 2024-9-11 09:15:17 | 显示全部楼层
回复 28# flashercs
只会镜像源文件夹的文件夹,不会镜像源文件夹的文件,如图箭头所指的PDF文件
 楼主| 发表于 2024-9-11 09:32:22 | 显示全部楼层
回复 28# flashercs
谢谢!不想太复杂了,
robocopy D:\新建文件夹\新建文件夹 G:\新建文件夹 /mir /s /maxage:30
能在这段代码的基础上添加清空目标文件夹的空文件夹可以吗
或者清空目标文件夹的空文件夹怎么写的,越简单越好.
 楼主| 发表于 2024-9-11 09:33:02 | 显示全部楼层
回复 30# Five66
谢谢!不想太复杂了,
robocopy D:\新建文件夹\新建文件夹 G:\新建文件夹 /mir /s /maxage:30
能在这段代码的基础上添加清空目标文件夹的空文件夹可以吗
或者清空目标文件夹的空文件夹怎么写的,越简单越好.
 楼主| 发表于 2024-9-11 09:33:47 | 显示全部楼层
回复 29# aloha20200628
谢谢!不想太复杂了,
robocopy D:\新建文件夹\新建文件夹 G:\新建文件夹 /mir /s /maxage:30
能在这段代码的基础上添加清空目标文件夹的空文件夹可以吗
或者清空目标文件夹的空文件夹怎么写的,越简单越好.
 楼主| 发表于 2024-9-11 09:34:19 | 显示全部楼层
回复 27# ppll2030
谢谢!不想太复杂了,
robocopy D:\新建文件夹\新建文件夹 G:\新建文件夹 /mir /s /maxage:30
能在这段代码的基础上添加清空目标文件夹的空文件夹可以吗
或者清空目标文件夹的空文件夹怎么写的,越简单越好.
发表于 2024-9-11 10:33:07 | 显示全部楼层
本帖最后由 ppll2030 于 2024-9-11 10:41 编辑

回复 35# onging


    27楼不是已经都给出了吗?保存为bat文件,需要的时候运行一下就好了。
第一条备份30天文件和文件夹(不含空文件夹)到目标文件夹,第二条去除目标文件夹内所有空的文件夹。
  1. robocopy D:\新建文件夹\新建文件夹 G:\新建文件夹 /mir /s /maxage:30
  2. for /f "delims=" %d in ('dir /b /s /ad "G:\新建文件夹" ^| sort /r') do @rd "%d" 2>nul
复制代码
这个是在cmd窗口下执行就可以了。
 楼主| 发表于 2024-9-11 11:36:12 | 显示全部楼层
回复 26# 77七
谢谢!不想太复杂了,
robocopy D:\新建文件夹\新建文件夹 G:\新建文件夹 /mir /s /maxage:30
能在这段代码的基础上添加清空目标文件夹的空文件夹可以吗
或者清空目标文件夹的空文件夹怎么写的,越简单越好.
发表于 2024-9-11 12:17:27 | 显示全部楼层
不必要重复回复,你回的大家都能看到。
主要是你说不清楚你需要的是什么?写出来可能是白写,再加之我水平太有限。
  1. @echo off
  2. rem 保存为ansi编码
  3. cd /d "%~dp0"
  4. set fd_from=d:\新建文件夹
  5. set fd_to=g:\新建文件夹
  6. for %%a in (0 30) do (
  7.         for /f "delims=" %%i in ('powershell -c "Get-Date (Get-Date).AddDays(-%%a) -uformat "%%Y-%%m-%%d""') do (
  8.                 robocopy "%fd_from%\%%i" "%fd_to%\%%i" /s
  9.         )
  10. )
  11. robocopy "%fd_from%" "%fd_to%" /maxage:30
  12. pause
复制代码

复制 目录名(创建日期?)在30天内的目录。
复制 fd_from下(不包含子目录 )文件修改时间在30天内的文件。
这样写的不伦不类的
发表于 2024-9-11 12:22:31 | 显示全部楼层
本帖最后由 aloha20200628 于 2024-12-8 13:27 编辑

回复 34# onging

根据 robocopy 用法细则的一些最简单的正确示例如下

   1. 复制 ‘源文件夹’ 的全部内容(目录结构+文件)自然也包括空目录,无视其中的数据寿命(maxage/minage),还会删除 ‘目的地文件夹’ 存在但 ‘源文件夹’ 不存在的内容》
         robocopy d:\源文件夹 e:\目的地文件夹 /mir
   2. 复制 ‘源文件夹’ 的全部内容(即包含空目录)》
         robocopy d:\源文件夹 e:\目的地文件夹 /e
   3. 复制 ‘源文件夹’ 中排除空目录以外的全部内容》
         robocopy d:\源文件夹 e:\目的地文件夹 /s
   4. 复制 ‘源文件夹’ 中符合指定寿命条件(maxage/minage)的全部内容》
         robocopy d:\源文件夹 e:\目的地文件夹 /e /maxage:30

试过 robocopy d:\源文件夹 e:\目的地文件夹 /s /maxage:30 的用法吗?
楼主的混合用法 ... /mir /maxage:30 ... 是先要整鸡,后要鸡腿 ... 叫 robocopy 犯晕去吧
 楼主| 发表于 2024-9-13 09:00:25 | 显示全部楼层
本帖最后由 onging 于 2024-9-13 09:04 编辑

回复 39# aloha20200628
robocopy d:\源文件夹 e:\目的地文件夹 /s /maxage:30
上面这条感觉好一点,但还是有很多空文件夹,
36楼给的去除目标文件夹内所有空的文件夹: for /f "delims=" %d in ('dir /b /s /ad "G:\新建文件夹" ^| sort /r') do @rd "%d" 2>nul
这段代码不起作用呢
红框里面的都是空文件夹
 楼主| 发表于 2024-9-13 09:02:06 | 显示全部楼层
本帖最后由 onging 于 2024-9-13 09:03 编辑

回复 36# ppll2030
第二条去除目标文件夹内所有空的文件夹不起作用呢?
红框里面的都是空文件夹
发表于 2024-9-13 10:13:55 | 显示全部楼层
回复 40# onging

你确认这些 ‘空文件夹’ 没有隐藏文件吗?否则 robocopy ... /s ... 这种 ‘仅复制非空目录’ 的标定用法就丢大脸了...
 楼主| 发表于 2024-9-13 16:58:44 | 显示全部楼层
回复 42# aloha20200628
今天发现S还是不是我想要的,要想的是MIR的效果,MIR再加空文件夹即可
空文件夹确实有隐藏的文件,不知道这个文件是怎么生成的
如图
发表于 2024-9-14 09:07:04 | 显示全部楼层
回复 41# onging


    删不掉表示文件夹非空。你找到了隐藏文件,是图片缓存文件,删除它不影响实际应用。那就在删除空文件夹之前,多加一条命令。先删除之再删除空文件夹即可。
  1. for /f "delims=" %i in ('dir /b /s /ahs-d "G:\新建文件夹" ^| findstr /ic:"thumbs.db"') do @del /ahs "%i"
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 20:47 , Processed in 0.021705 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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