批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程
[批处理文件精品]批处理版照片整理器[批处理文件精品]纯批处理备份&还原驱动在线第三方下载
返回列表 发帖

[文件操作] [已解决]如何写批处理保留备份文件夹里按日期命名的最新文件

本帖最后由 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开始的文件名?

是标题词不达意?

TOP

有经验的进,谢谢。

TOP

回复 1# tmp05
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set "SrcFolder=D:\bak"
  4. set "DstFolder=D:\bakold"
  5. if not exist "%DstFolder%" (
  6.     md "%DstFolder%"
  7. )
  8. echo 获取系统日期
  9. for /f "delims=" %%i in ('powershell -c "Get-Date -UFormat '%%Y%%m%%d'"') do (
  10.     set "SysTS=%%i"
  11. )
  12. pushd "%SrcFolder%"
  13. for /f "delims=" %%i in ('dir /b /a-d "bak*.rar"') do (
  14.     set "FileName=%%i"
  15.     set "FileDate=!FileName:~3,8!"
  16.     if "!FileDate!" neq "%SysTS%" (
  17.         move /y "!FileName!" "%DstFolder%"
  18.     )
  19. )
  20. popd
复制代码
1

评分人数

    • tmp05: 感谢分享!技术 + 1
【批处理在线视频分享】http://bbs.bathome.net/thread-31727-1-1.html
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html

我帮忙写的代码不需要付钱,不用找我要支付宝或微信账号。如果一定要给,请到微信群给大家发红吧。

TOP

回复 4# Batcher
回复迟了,试了,能用,感谢!

TOP

返回列表