标题: [文件操作] [已解决]如何写批处理保留备份文件夹里按日期命名的最新文件 [打印本页]
作者: tmp05 时间: 2020-9-11 10:46 标题: [已解决]如何写批处理保留备份文件夹里按日期命名的最新文件
本帖最后由 tmp05 于 2020-9-24 17:22 编辑
已设置了每日定时运行批处理备份文件到d:\bak文件夹,现要求定时移动旧的备份文件到d:\bakold,d:\bak只保留当前日期的最新备份,如bak20200911.rar
d:\bak下有以下以日期命名的备份文件,还有一些其它文件
bak20200909.rar
bak20200910.rar
bak20200911.rar
a.7z
b.7z
c.rar
......
试写了以下代码,帮修改下,谢谢!
forfiles /p "d:\bak\bak*.rar" /d -1 /c "cmd /c move /y @path d:\bakold\
这里是否能用通配符来表示bak开始的文件名?
作者: tmp05 时间: 2020-9-12 20:31
是标题词不达意?
作者: tmp05 时间: 2020-9-13 10:19
有经验的进,谢谢。
作者: Batcher 时间: 2020-9-13 22:17
回复 1# tmp05 - @echo off
- setlocal enabledelayedexpansion
- set "SrcFolder=D:\bak"
- set "DstFolder=D:\bakold"
- if not exist "%DstFolder%" (
- md "%DstFolder%"
- )
- echo 获取系统日期
- for /f "delims=" %%i in ('powershell -c "Get-Date -UFormat '%%Y%%m%%d'"') do (
- set "SysTS=%%i"
- )
- pushd "%SrcFolder%"
- for /f "delims=" %%i in ('dir /b /a-d "bak*.rar"') do (
- set "FileName=%%i"
- set "FileDate=!FileName:~3,8!"
- if "!FileDate!" neq "%SysTS%" (
- move /y "!FileName!" "%DstFolder%"
- )
- )
- popd
复制代码
作者: tmp05 时间: 2020-9-24 17:21
回复 4# Batcher
回复迟了,试了,能用,感谢!
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |