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

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

我做的是这种:
  1. robocopy D:\新建文件夹\新建文件夹 G:\新建文件夹 /mir /maxage:30
复制代码
但我做的不精确的,几个月前的也镜像了,麻烦大佬们完善一下,谢谢!

回复 41# onging


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

TOP

回复 42# aloha20200628
今天发现S还是不是我想要的,要想的是MIR的效果,MIR再加空文件夹即可
空文件夹确实有隐藏的文件,不知道这个文件是怎么生成的
如图

TOP

回复 40# onging

你确认这些 ‘空文件夹’ 没有隐藏文件吗?否则 robocopy ... /s ... 这种 ‘仅复制非空目录’ 的标定用法就丢大脸了...

TOP

本帖最后由 onging 于 2024-9-13 09:03 编辑

回复 36# ppll2030
第二条去除目标文件夹内所有空的文件夹不起作用呢?
红框里面的都是空文件夹

TOP

本帖最后由 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
这段代码不起作用呢
红框里面的都是空文件夹

TOP

本帖最后由 aloha20200628 于 2024-9-11 12:38 编辑

回复 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:\目的地文件夹 /maxage:30

试过 robocopy d:\源文件夹 e:\目的地文件夹 /s /maxage:30 的用法吗?
楼主的混合用法 ... /mir /maxage:30 ... 是先要整鸡,后要鸡腿 ... 叫 robocopy 犯晕去吧

TOP

不必要重复回复,你回的大家都能看到。
主要是你说不清楚你需要的是什么?写出来可能是白写,再加之我水平太有限。
  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天内的文件。
这样写的不伦不类的
bat小白,请多指教!谢谢!

TOP

回复 26# 77七
谢谢!不想太复杂了,
robocopy D:\新建文件夹\新建文件夹 G:\新建文件夹 /mir /s /maxage:30
能在这段代码的基础上添加清空目标文件夹的空文件夹可以吗
或者清空目标文件夹的空文件夹怎么写的,越简单越好.

TOP

本帖最后由 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窗口下执行就可以了。

TOP

回复 27# ppll2030
谢谢!不想太复杂了,
robocopy D:\新建文件夹\新建文件夹 G:\新建文件夹 /mir /s /maxage:30
能在这段代码的基础上添加清空目标文件夹的空文件夹可以吗
或者清空目标文件夹的空文件夹怎么写的,越简单越好.

TOP

回复 29# aloha20200628
谢谢!不想太复杂了,
robocopy D:\新建文件夹\新建文件夹 G:\新建文件夹 /mir /s /maxage:30
能在这段代码的基础上添加清空目标文件夹的空文件夹可以吗
或者清空目标文件夹的空文件夹怎么写的,越简单越好.

TOP

回复 30# Five66
谢谢!不想太复杂了,
robocopy D:\新建文件夹\新建文件夹 G:\新建文件夹 /mir /s /maxage:30
能在这段代码的基础上添加清空目标文件夹的空文件夹可以吗
或者清空目标文件夹的空文件夹怎么写的,越简单越好.

TOP

回复 28# flashercs
谢谢!不想太复杂了,
robocopy D:\新建文件夹\新建文件夹 G:\新建文件夹 /mir /s /maxage:30
能在这段代码的基础上添加清空目标文件夹的空文件夹可以吗
或者清空目标文件夹的空文件夹怎么写的,越简单越好.

TOP

回复 28# flashercs
只会镜像源文件夹的文件夹,不会镜像源文件夹的文件,如图箭头所指的PDF文件

TOP

返回列表