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

[文件操作] 求助批处理类似FTP的命令按照日期备份文件

各位大神,我数据需要备份到网络共享盘中,例如:本地  D:\123  备份到 网络共享盘  192.168.1.105\数据备份中,并且网络共享盘需要按月份按日期分开备份,例如:2024/7 下面有25 26日期备份,
不能删除原文件并且备份过的文件重启软件后不需要再备份,请教什么写批处理,谢谢啦%

  1. @echo off
  2. ::定义源文件夹
  3. set Sour=D:\123
  4. ::获取文件夹名
  5. for %%* in (%Sour%) do set dir_name=%%~nx*
  6. for /f "tokens=1-3 delims=-/:. " %%a in ('echo %Date%') do (
  7.   robocopy /s %Sour% \\192.168.1.105\数据备份\%%a\%%b\%%c\%dir_name% /quit
  8. )
  9. pause
复制代码
先试一下,如果显示的参数没问题,再删掉 robocopy 那行的 /quit 再运行就实际复制了

TOP

d:\123含有子目录么?需要保留目录结构备份吗?根据文件修改时间备份行吗?即每次备份修改时间在上一次备份时间之后的文件。
bat小白,请多指教!谢谢!

TOP

d:\123 有子目录

TOP

按照修改时间日期备份即可

TOP

可能需要映射,论坛内搜索自行解决...同一文件如果备份后再修改,需等到次日再备份
  1. @echo off
  2. rem 保存为ansi
  3. cd /d "%~dp0"
  4. rem 源目录
  5. set f1=d:\a
  6. rem 映射目录
  7. set f2=
  8. rem time.log 文件不可丢失。初次修改时间为 2024/08/02 00:00
  9. (set /p t=<"time.log") 2>nul || set t=2024/08/02 00:00
  10. attrib +a /s "%f1%\*"
  11. for /f "delims=" %%i in ('dir /b /s /a-d "%f1%"') do (
  12. if "%%~ti" lss "%t%" (
  13. attrib -a "%%i"
  14. )
  15. )
  16. for /f "tokens=1-5" %%a in ('powershell -c "'{0:yyyy MM dd hh mm}' -f (get-date)"') do (
  17. robocopy "%f1%" "%f2%\%%a\%%b\%%c" /s /a /xc /xn /xo
  18. >"time.log" echo %%a/%%b/%%c %%d:%%e
  19. )
  20. attrib +a /s "%f1%\*"
  21. pause
复制代码
bat小白,请多指教!谢谢!

TOP

感谢77七和hnfeng,再请教 77七一下,我数据可以在映射盘中建立年月日文件夹,但是无法复制数据,请问是什么问题

TOP

回复 7# 司马光2008


   我没有用过这个,你那边能提供什么报错信息吗?
bat小白,请多指教!谢谢!

TOP

没有报错,只是无法复制数据

TOP

回复 9# 司马光2008


   
如果确认没有报错,可能是代码目的及使用方法问题,参考 3楼最后一句话,和6楼第8行。
bat小白,请多指教!谢谢!

TOP

可以了,多谢晒

TOP

返回列表