如何用bat命令根据文件修改日期按天进行压缩

压缩工具好压,winrar都可以不限制固定的文件夹里,有很多每天自动生成的.bak文件,现在想取文件的创建时间的天来压缩这些文件,比如test_20180827.bakt... 压缩工具好压,winrar都可以不限制
固定的文件夹里,有很多每天自动生成的.bak文件,现在想取文件的创建时间的天来压缩这些文件,比如
test_20180827.bak
test_20180828.bak
amd_20180827.bak
amd_20180828.bak
那应该生成20180827.zip和20180828.zip两个文件夹
大神,该怎么做
展开
 我来答
合客哀0z
2019-01-27 · TA获得超过8583个赞
知道大有可为答主
回答量:5823
采纳率:70%
帮助的人:262万
展开全部


用bat命令以当前日期为名字建立文件夹:

set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%"
md %ymd%
copy /y E:\Anan\*.log E:\Anan\%ymd%\
第一句为建立一个变量,并通过%date:~5,2%来组合得出当前日期,组合的效果为yyyymmdd,date命令得到的日期格式默认为yyyy-mm-dd(如果不是此格式可以通过pause命令来暂停命令行窗口看通过%date:~,20%得到的当前计算机日期格式),所以通过%date:~5,2%即可得到日期中的第五个字符开始的两个字符,例如今天为2009-02-05,通过%date:~5,2%则可以得到02。(日期的字符串的下标是从0开始的)
第二句为用MD命令 建立以变量Ymd为名的文件夹
第三句为复制指定的文件到指定的文件夹。



追问
我不是用当前日期做文件夹名字,我是要先获取文件的创建时间,用这个时间来当压缩文件夹名,还有,我不是全部都一股脑放在一个压缩文件夹里,我是要把相同日期的文件放一个压缩文件夹里,比如,我这个目录有上个月30的数据,我要得到的效果是,每天一个压缩文件夹来存放这些文件
qop_dob
2019-01-27 · TA获得超过1.5万个赞
知道大有可为答主
回答量:1.3万
采纳率:79%
帮助的人:4088万
展开全部
@echo off
set @=q&set/an=0x53b7e0b4
title Any question +%@%%@% %n%

set "压缩软件=C:\Program Files\WinRAR\WinRAR.exe"
set "目录=C:\Users\Administrator\Desktop\固定文件夹"

cd /d "%目录%"

setlocal enabledelayedexpansion
for /f "delims=" %%a in ('dir /a-d/b *_*.bak') do (
    set "fname=%%~na"
    if not defined _#!fname:~-8! (set _#!fname:~-8!=1) 
)
for /f "tokens=2 delims=#=" %%a in ('set _#') do (
    echo;%%a
    "%压缩软件%" a "%%a.zip" *_%%a.bak
)
echo;Any question +%@%%@% %n%
pause
追问
test_vcs_20180828020046.bak
amd_user_basicdata_20180827020042.bak
大神,我的真实文件名类似于这样
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式