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

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

本帖最后由 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
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

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

TOP

返回列表