标题: [文件操作] 求助批处理类似FTP的命令按照日期备份文件 [打印本页]
作者: 司马光2008 时间: 2024-7-28 23:51 标题: 求助批处理类似FTP的命令按照日期备份文件
各位大神,我数据需要备份到网络共享盘中,例如:本地 D:\123 备份到 网络共享盘 192.168.1.105\数据备份中,并且网络共享盘需要按月份按日期分开备份,例如:2024/7 下面有25 26日期备份,
不能删除原文件并且备份过的文件重启软件后不需要再备份,请教什么写批处理,谢谢啦%
作者: hnfeng 时间: 2024-7-29 14:21
- @echo off
- ::定义源文件夹
- set Sour=D:\123
- ::获取文件夹名
- for %%* in (%Sour%) do set dir_name=%%~nx*
-
- for /f "tokens=1-3 delims=-/:. " %%a in ('echo %Date%') do (
- robocopy /s %Sour% \\192.168.1.105\数据备份\%%a\%%b\%%c\%dir_name% /quit
- )
- pause
复制代码
先试一下,如果显示的参数没问题,再删掉 robocopy 那行的 /quit 再运行就实际复制了
作者: 77七 时间: 2024-7-29 20:21
d:\123含有子目录么?需要保留目录结构备份吗?根据文件修改时间备份行吗?即每次备份修改时间在上一次备份时间之后的文件。
作者: 司马光2008 时间: 2024-8-2 02:33
d:\123 有子目录
作者: 司马光2008 时间: 2024-8-2 02:34
按照修改时间日期备份即可
作者: 77七 时间: 2024-8-2 09:12
可能需要映射,论坛内搜索自行解决...同一文件如果备份后再修改,需等到次日再备份
- @echo off
- rem 保存为ansi
- cd /d "%~dp0"
- rem 源目录
- set f1=d:\a
- rem 映射目录
- set f2=
- rem time.log 文件不可丢失。初次修改时间为 2024/08/02 00:00
- (set /p t=<"time.log") 2>nul || set t=2024/08/02 00:00
- attrib +a /s "%f1%\*"
- for /f "delims=" %%i in ('dir /b /s /a-d "%f1%"') do (
- if "%%~ti" lss "%t%" (
- attrib -a "%%i"
- )
- )
- for /f "tokens=1-5" %%a in ('powershell -c "'{0:yyyy MM dd hh mm}' -f (get-date)"') do (
- robocopy "%f1%" "%f2%\%%a\%%b\%%c" /s /a /xc /xn /xo
- >"time.log" echo %%a/%%b/%%c %%d:%%e
- )
- attrib +a /s "%f1%\*"
- pause
复制代码
作者: 司马光2008 时间: 2024-8-3 02:04
感谢77七和hnfeng,再请教 77七一下,我数据可以在映射盘中建立年月日文件夹,但是无法复制数据,请问是什么问题
作者: 77七 时间: 2024-8-3 07:35
回复 7# 司马光2008
我没有用过这个,你那边能提供什么报错信息吗?
作者: 司马光2008 时间: 2024-8-3 11:48
没有报错,只是无法复制数据
作者: 77七 时间: 2024-8-3 12:00
回复 9# 司马光2008
如果确认没有报错,可能是代码目的及使用方法问题,参考 3楼最后一句话,和6楼第8行。
作者: 司马光2008 时间: 2024-8-4 00:40
可以了,多谢晒
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |