如何用bat命令根据文件修改日期按天进行压缩
压缩工具好压,winrar都可以不限制固定的文件夹里,有很多每天自动生成的.bak文件,现在想取文件的创建时间的天来压缩这些文件,比如test_20180827.bakt...
压缩工具好压,winrar都可以不限制
固定的文件夹里,有很多每天自动生成的.bak文件,现在想取文件的创建时间的天来压缩这些文件,比如
test_20180827.bak
test_20180828.bak
amd_20180827.bak
amd_20180828.bak
那应该生成20180827.zip和20180828.zip两个文件夹
大神,该怎么做 展开
固定的文件夹里,有很多每天自动生成的.bak文件,现在想取文件的创建时间的天来压缩这些文件,比如
test_20180827.bak
test_20180828.bak
amd_20180827.bak
amd_20180828.bak
那应该生成20180827.zip和20180828.zip两个文件夹
大神,该怎么做 展开
2个回答
展开全部
用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的数据,我要得到的效果是,每天一个压缩文件夹来存放这些文件
展开全部
@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
大神,我的真实文件名类似于这样
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询